私は、c++ と matlab を使用して他の誰かが開発したプログラムを使用しています。両方のソースコードを持っていますが、何が起こっているのかわかりません...
Matlab は、次のようなものを使用して、c++ から生成された dll を呼び出します。
myCustomCppFunction('param1', 'param2)
dll エクスポートでmyCustomCppFunctionが表示されることを期待していましたが、見つかりませんでした。
dumpbinコマンドを実行すると、次のようなメッセージが表示されます。
dumpbin /exports c:/myCustomCpp.dll
ordinal hint RVA name
1 0 00001010 myCustomCppFunctionWithADifferentName
そう、
myCustomCppFunctionWithADifferentName != myCustomCppFunction
DLL は、私の matlab が呼び出している関数名とは異なる関数名をエクスポートしています。そして、私はマングルされた名前について話しているのではなく、「リンゴ」と「バナナ」のように、両方の名前が 100% 異なります。:-)
どういうわけか、すべてがうまくいきます!しかし、どのように?!?
Matlabでは、呼び出された関数が調査中のDLLからのものであることを確認するコマンドも実行しました....
>> which myCustomCppFunctionWithADifferentName
>> c:/myCustomCpp.dll
手がかりはありますか?