問題タブ [cdecl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2622 参照

c# - ヒープが破損しています: アンマネージ関数の呼び出し時

次のように、管理されていない非常に単純な C++ 関数 ( にあります) を C# で管理されている関数から呼び出してJNIDiskInfoDll.dllいます。

C++:

C#:

私の問題は、アプリケーションを実行した後、 と という 2 つの連続したエラーが発生することprojectName.exe has triggered a breakpointですUnhandled exception at 0x77110E23 (ntdll.dll) in projectName.exe: 0xC0000374: A heap has been corrupted (parameters: 0x7712E930).。これらのエラーが発生していますが、関数はまだ目的の出力を返していることを知っています。

エラーが続くコード全体を削除する前にC関数を使用していたため、 getSerialC関数にはパラメーターがあることに注意してください(のみ保持)。LPTSTR inCStrInreturn "abcdefg";

ここで何が問題になるのかわかりません。を に変更しようとしCharsetましたDllImportUnidcode、それでも同じエラーが発生します。何か助けてください。

0 投票する
0 に答える
70 参照

c# - C# から C++/CLR 関数を呼び出す - パラメーターを渡すことが機能しない

C# dll から C++/CLR dll の関数を呼び出そうとしています。->これはかなりうまくいっています。

私が直面している問題は、C# から C++/CLR の関数に渡す必要があるパラメーターが C++ で正しく到着しないことです。

最後に、文字列の配列といくつかのブール値パラメーターを C# から C++/CLR に渡す必要があります。

これまでに行ったこと/試したこと:

私のC++/CLR部分は次のようになります。

私のC#(dll-import)部分は次のようになります:

C# での関数呼び出しは次のようになります。

ID は次のように定義されます。