繁体   English   中英

佳能SDK初始化崩溃

[英]Canon SDK Initialisation Crash

我目前正在尝试在C ++中使用Canon SDK。 实际上,这确实是我第一次使用SDK,并且是C ++中的入门者。

问题是,当我尝试使用EdsInitializeSDK()函数初始化SDK时,它立即崩溃,这是错误消息:

在CameraTest.exe中的0x00007FFA34E0121C(EDSDK.dll)处引发的异常:0xC0000005:访问冲突读取位置0x00000000B44D4740。

CameraTest.exe中0x00007FFA34E0121C(EDSDK.dll)的未处理异常:0xC0000005:访问冲突读取位置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函数,它不会崩溃。 您有什么问题的想法吗? 谢谢。

好的,答案很简单。 当我连接相机时,会出现一个名为“ EOS Utility 3”的软件。 它的问题是,当我关闭它(并确保它确实关闭而不只是减少)时,它可以工作。 谢谢你的帮助。 (我将佳能EDSDK版本3.6.1与佳能EOS 1300D一起使用)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM