这是我在引用 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.
错误位于名为 CAMERA.cs 的文件中,它是我通过 PC 控制佳能相机的项目的一部分。
我错过了这个 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);
这是我的 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 签名的调用约定和参数是否与目标非托管签名匹配。
我现在用谷歌搜索了很多,没有找到关于这个错误的任何线索。