我正在开发小型摄影应用程序,它应该与佳能 EDSDK api 和 EOS 相机一起使用。旧 dll(从 2014 年开始)和旧相机佳能 1100D 和 1200D 一切正常。最近我购买了继任者,型号 1300D。当然,旧的dll(2014)无法识别2016年以来的新型号相机,我无法连接到相机。
所以我替换了旧的 dll:EDSDK.dll 和 EdsImage.dll
新的,取自上一个佳能 EOS Utility 版本 3,适用于佳能 1300D。
现在,我的相机被识别了,在我的主面板上我可以看到连接的相机的名称,佳能 EOS 1300D。
但是在替换 dll 之后,当我尝试从相机开始实时取景时,我收到了这个奇怪的错误消息:
调用 PInvoke 函数 'testApp!EDSDKLib.EDSDK::EdsCreateMemoryStream' 使堆栈失衡。这可能是因为托管 PInvoke 签名与非托管目标签名不匹配。检查 PInvoke 签名的调用约定和参数是否与目标非托管签名匹配
我将非常感谢任何帮助。我已经在这方面浪费了很多时间。我没有任何想法了,我不知道我应该在哪里寻找答案。
提前谢谢大家。