Canon EDSDK APIとEOSカメラで動作する小さな写真アプリを開発しています。古い dll (2014 年以降) と古いカメラ、Canon 1100D および 1200D では、すべて正常に動作しました。最近、後継モデルの1300Dを購入しました。もちろん古いdll(2014)は2016年以降の新型カメラを認識せず、接続できませんでした。
そこで、古い dll を置き換えました: EDSDK.dll と EdsImage.dll
Canon 1300Dで動作する、最後のCanon EOS Utility ver.3から取得した新しいものを使用します。
これで、カメラが認識され、メイン パネルに、接続されているカメラの名前、Canon EOS 1300D が表示されます。
しかし、dll を置き換えた後、カメラからライブ ビューを開始しようとすると、次の奇妙なエラー メッセージが表示されます。
PInvoke 関数 'testApp!EDSDKLib.EDSDK::EdsCreateMemoryStream' の呼び出しにより、スタックのバランスが崩れました。これは、マネージド PInvoke 署名がアンマネージド ターゲット シグネチャと一致しないことが原因である可能性があります。PInvoke シグネチャの呼び出し規約とパラメーターがターゲットのアンマネージド シグネチャと一致することを確認します
どんな助けにもとても感謝します。私はすでにこれで多くの時間を失いました。私にはもうアイデアがなく、どこで答えを探すべきかわかりません。
よろしくお願いします。