来自EDSDK的C ++控制佳能相机

时间:2013-07-17 00:59:42

标签: c++ camera canon-sdk

您好我正试图通过usb在c ++中测试一个佳能相机(最终我想在labview上使用它)。我在使用任何其他功能之前尝试初始化相机,首先我有canon SDK提供的lib和dll文件,但我认为我没有正确包含它们,因为我得到了一个未解决的外部错误

1>EDSDK.obj : error LNK2019: unresolved external symbol __imp__EdsInitializeSDK@0 referenced in function _main   

我对c ++很陌生,所以我不知道自己在做什么,有人会对如何让这个初始化工作有任何建议吗?还有关于如何正确包含lib和dll文件?以下是我写的代码。

#include "EDSDK.h"
#include "EDSDKErrors.h"
#include "EDSDKTypes.h"
#include <stdio.h>

void main(int argc, char **argv)
{
EdsError err = EDS_ERR_OK;
EdsCameraRef camera = NULL;
EdsCameraListRef cameraList = NULL;
EdsUInt32 count = 0;
bool isSDKLoaded = false;

// Initialize SDK
err = EdsInitializeSDK(); // If camera is initialised, err = EDS_ERR_OK
if(err == EDS_ERR_OK)
{
isSDKLoaded = true; // isSDKLoaded is true if initialised
printf("SDK initialised");
}

printf("SDK not-initialised\n");

}

2 个答案:

答案 0 :(得分:0)

您必须告诉链接器将您的程序与库链接。如何告诉链接器取决于工具链。你应该参考文档。

答案 1 :(得分:0)

我还有很长时间才弄明白,以下步骤对我有用:

在VB中,您必须链接到包含头文件的文件夹和包含lib文件的文件夹。为此:

在属性页面中,在C / C ++下 - &gt;常规,在“其他包含的目录”中添加包含标题的文件夹的路径(在下拉列表中选择“编辑”)。 在链接器下 - &gt;输入,在“附加依赖项”中添加库文件夹的路径(在下拉列表中选择“编辑”)。

将dll文件放在C:/ Windows文件夹中。

应将dll文件放在与可执行文件相同的文件中(通常为“Debug”文件夹)。

另请参阅:How do I link a DLL to my project? error LNK2019: unresolved external symbol