Сбой инициализации Canon SDK

Я сейчас пытаюсь использовать Canon SDK на C++. Это действительно первый раз, когда я использую SDK, и я начинаю писать на C++.

Проблема в том, что когда я пытаюсь инициализировать SDK с помощью функции EdsInitializeSDK(), он сразу вылетает, вот сообщения об ошибках:

Exception thrown at 0x00007FFA34E0121C (EDSDK.dll) in CameraTest.exe: 0xC0000005: Access violation reading location 0x00000000B44D4740.

Unhandled exception at 0x00007FFA34E0121C (EDSDK.dll) in CameraTest.exe: 0xC0000005: Access violation reading location 0x00000000B44D4740.

Вот весь код здесь:

#include "stdafx.h"
#include "iostream"
#include "EDSDK.h"
#include "EDSDKTypes.h"
#include "CameraModel.h"
#include "CameraModelLegacy.h"
#include "CameraController.h"
#include "CameraEventListener.h"

using namespace std;

int main(void)
{
    EdsError err = EDS_ERR_OK;
    EdsCameraListRef cameraList = NULL;
    EdsUInt32 count = 0;
    EdsCameraRef camera = nullptr;
    bool isSDKLoaded = false;

    err = EdsInitializeSDK();
    system("pause");
    if (err == EDS_ERR_OK) {
        cout << "SDK INITIALISED" << endl;
    } else {
        cout << "SDK INITIALISATION FAILED WAIT FOR EXIT" << endl;
        system("pause");
        exit(84);
    }
    cout << err << endl;
    err = EdsGetCameraList(&cameraList);
    cout << err << endl;
    if (err == EDS_ERR_OK) {
        cout << "Camera List Ok" << endl;
        err = EdsGetChildCount(cameraList, &count);
        cout << "Count : " << count << endl;
        if (count == 0) {
            err = EDS_ERR_DEVICE_NOT_FOUND;
        }
    }
    else {
        cout << "No Camera List" << endl;
    }
    if (err == EDS_ERR_OK) {
        cout << "It worked" << endl;
        err = EdsGetChildAtIndex(cameraList, 0, &camera);
    } else {
        cout << "It didnt worked" << endl;
    }
    system("pause");
}

Если я удалю функцию EDSInitializeSDK, она не выйдет из строя. Вы знаете, в чем проблема? Спасибо.

Попробуйте что-нибудь попроще: просто вызовите функцию инициализации и функцию выпуска. И проверьте документацию для этих двух функций.

zdf 19.07.2018 11:32

@ZDF Спасибо за ответ. Я уже пытался это сделать, все равно вылетает.

Axel.A 19.07.2018 11:46

Есть ли что-то, что вы должны установить перед вызовом функции инициализации? Драйверы? Другие DLL установлены?

Khouri Giordano 19.07.2018 13:30
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
329
1

Ответы 1

Итак, ответ довольно прост. Когда я подключаю камеру, появляется программа под названием «EOS Utility 3». Проблема в том, что когда я закрываю его (и убеждаюсь, что он действительно близок, а не просто сокращен), он работает. Спасибо за вашу помощь. (Я использовал Canon EDSDK версии 3.6.1 с Canon EOS 1300D)

Другие вопросы по теме