The value of ESP was not properly saved across a function call.が出てうまくいきません。
VS2013VC++ で Hamlog50.dllを使ってHamlogの操作をしたいのです。
アクセスに必要なHamlog50.Libも作成し関数にはextern "C" __declspec(dllexport) 及びextern "C" __declspec(dllimport)を付け
DLL作成時も含めて__cdecl(/Gd) オプション(標準)で行っています。
これで名前修飾もなくビルドはエラーがでず完了します。
ところが、デバッグを行うとHamlog50.dllを呼び出す関数のところでこの警告が出てしまいます。 GetThdllVersion()等の様に引数の無いものは大丈夫なようですが(当たり前ですか)、SetDbsShare_VC(0)と単純なものでも発生します。
一方やむなく、 LoadLibrary(L"Hamlog50.dll")
GetProcAddress(hDLL, "HamlogOpen")
などからコールする方法では問題なくアクセス出来ることも確認しています。何か解決策がありそうなんですが。この辺の処うまく切り抜けておられる方アドバイスお願いいたします。
C++側の呼び出し規約を __stdcall (/Gz) に変更すると良いとの情報も得ていますが、名前修飾の問題が解決出来ませんでした。