所以我试图让这个核仪器硬件工作。我可以在win32 C++项目中使用64位驱动程序的api吗?
我已经安装了64位驱动程序(我使用的是Windows 7 64位),我已经下载了与之配套的dll。
当我添加的dll文件,并尝试使用该功能,在视觉工作室一个Win32控制台应用程序项目,它给了我一个链接错误:
错误1个错误LNK2019:解析外部符号_CAENVME_SWRelease @ 4在功能上引用_main main.obj vmeTest
我想这意味着它无法在dll中找到函数CAENVME_SWRelease。
我已经将dll和相应的.lib和头文件一起添加到了项目中,并将它们添加到了参考文件中(我已经尝试将它们添加到路径环境变量中,并且在其他库目录中的链接程序下)< --not必须这样做,但认为我会尝试),但它不会工作。
为了看看我是不是做得不对,我尝试创建一个dll并以相同的方式将其添加到项目中,并且它工作正常。
所以我想知道是否因为我使用的是win32项目,这些dll是64位(因为它们是64位驱动程序?)。
显然我不知道我在说什么。任何人都可以给我一些帮助或刺探可能发生的事情吗?
这里的功能是如何在头文件中定义:
CAENVME_API
CAENVME_SWRelease(char *SwRel);
,我把它称为是这样的:
char dog;
CAENVME_SWRelease(&dog);
cout << dog
64位STDCALL名装修不使用@n后缀,参数是通过传递一个注册表。否则,OP需要链接32位版本的.lib或构建其程序的x64版本。 – 2010-07-01 17:44:09
噢,是的。我还没有深入了解64位Windows。 – Rup 2010-07-01 17:46:14
那么32位版本的.lib能够控制我已经安装的64位驱动程序(显然,我不能安装32位驱动程序),或者是唯一的选项来编写我的程序在64位?该库的32位版本可用。感谢您的答复。 – Johnny 2010-07-01 19:46:51