Canon SDK初始化崩溃

Canon SDK Initialisation Crash

本文关键字:崩溃 初始化 SDK Canon      更新时间:2023-10-16

im目前正在尝试在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实用程序3"的软件会出现。问题是,当我关闭它(并确保它真正关闭,而不仅仅是还原(时,它就起作用了。谢谢你的帮助。(我使用的是佳能EDSDK 3.6.1版本,带有佳能EOS 1300D(