我有一个相机(thorlabs dcc1645c),它带有一个“uc480.h”+“uc480.lib”,可以用c++编程。我的问题是我需要用Python来使用相机,所以我尝试用Python调用C++类,正如弗洛里安所说:
这是我的c++代码(Cam2.cpp):
\#include "uc480.h"
class Cam{
public:
UC480_CAMERA_LIST* pucl;
int nNumberOfCameras;
int GetNumberOfCameras(){
return is_GetNumberOfCameras(&nNumberOfCameras);
}
};
extern "C" {
Cam* Cam_new(){ return new Cam(); }
int Cam_GetNumberOfCameras(Cam* cam){ cam->GetNumberOfCameras(); }
}
我试着用g++编译:
^{pr2}$第二行给出一个错误:
Cam2.o:Cam2.cpp:(.text$_ZN3Cam18GetNumberOfCamerasEv[Cam::GetNumberOfCameras()]+
0x1a): undefined reference to `__imp_is_GetNumberOfCameras'
collect2.exe: error: ld returned 1 exit status
“is-GetNumberOfCameras”是在“uc480.lib”中定义的,所以在我看来链接有问题。我怎么修?在
另外请告诉我,如果你现在有其他的可能性使用Python相机。在
我使用内存工作;只需将lib文件添加到link命令就足够了,如
或者,您可能需要在link命令中添加一个类似
-L. -luc480
的选项,假设库与代码位于同一目录中。在谢谢你到目前为止的帮助。我找到了解决问题的办法。首先是我当前的c++代码:
我用visualstudio构建了一个DLL。我遵循了这条指令的第一步http://msdn.microsoft.com/de-de/library/ms235636.aspx:
创建动态链接库(DLL)项目的步骤
在菜单栏上,选择“文件”、“新建”、“项目”。
在中间窗格中,选择Win32控制台应用程序。
在“解决方案名称”框中指定解决方案的名称,例如MyDLL。选择“确定”按钮。
在“Win32应用程序向导”对话框的“概述”页上,选择“下一步”按钮。
在“应用程序设置”页面的“应用程序类型”下,选择“DLL”。
选择Finish按钮创建项目。
之后,我将我的c++代码添加到我的dll.cpp并编译成我的dll.dll 这可以与python ctypes一起使用:
^{pr2}$这对我很好。在
相关问题 更多 >
编程相关推荐