2013-05-02 81 views
1

這是雖然提到CDSDK.dll我收到錯誤:我想使用一個dll文件名:CDSDK.dll,但得到一個錯誤什麼是這個錯誤?

A call to PInvoke function 'Canon_Camera_Control!RDC.CameraSDK.cdAPI::CDStartSDK' has unbalanced the stack. 
This is likely because the managed PInvoke signature does not match the unmanaged target signature. 
Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature. 

的erorr是這是我的項目通過PC來控制我的佳能相機的一部分,一個名爲CAMERA.cs。

我錯過了這個DLL文件,所以我從兩個地方下載了兩次。 在第一時間的DLL文件是300KB,並給了一個錯誤,但該計劃並沒有停止,我用我的記錄註銷錯誤:

5/2/2013--11:02 PM ==> Error! CDStartSDK C000060 
5/2/2013--11:02 PM ==> Error! CDEnumDeviceReset C0000F1 
5/2/2013--11:02 PM ==> Error! CDFinishSDK C0000F1 

然後我下載的第二個文件是298KB,他給了我現在這個錯誤。

唯一的例外是在CAMERS.cs上線人數929:

err = (UInt32)cdAPI.CDStartSDK(ref Version, 0); 

這是更新包括兩名directores到我的解決方案/項目的鏈接我的SkyDrive:

CDSDK1和CDSDK2在每個有是cdsdk.dll文件一個是928kb左右,其他300kb左右。

每一個都給出了一個不同的錯誤。

https://skydrive.live.com/redir?resid=EB1C71C44C3976D5!202&authkey=!AAe7QvxIzBMne1Q

項目名稱以下載:Canon_Camera_Control

這是塞康CDSDK.dll文件的完整異常消息:檢測

PInvokeStackImbalance 消息:一個調用函數的PInvoke 'Canon_Camera_Control!RDC.CameraSDK.cdAPI :: CDStartSDK'已經不平衡了堆棧。這很可能是因爲託管的PInvoke簽名與非託管目標籤名不匹配。檢查PInvoke簽名的調用約定和參數是否與目標非託管簽名相匹配。

我現在搜索了很多關於這個錯誤的信息,並沒有找到任何線索。

+0

檢查PInvoke簽名的調用約定和參數是否與目標非託管簽名相匹配。告訴我們你的聲明。 – SLaks 2013-05-02 21:05:28

+1

我不是專家,但使用谷歌搜索「pinvoke已經失去了平衡」,三個熱門點擊都在這裏。做任何這些幫助嗎? http://stackoverflow.com/questions/2941960/a-call-to-pinvoke-function-has-unbalanced-the-stack http://stackoverflow.com/questions/9855438/a-call-to-a -pinvoke-function-has-unbalanced-the-stack http://stackoverflow.com/questions/15255474/a-call-to-pinvoke-has-unbalanced-the-stack-dll-import-fails-even-with -cdecl – neminem 2013-05-02 21:06:49

+0

這是一個CAMERA.cs代碼的鏈接,我不確定聲明在哪裏。 http://pastebin.com/m9MvpfbE – 2013-05-02 21:09:10

回答