所以我試圖讓這個核儀器硬件工作。我可以在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