問題タブ [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.
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関数を使用していたため、 getSerial
C関数にはパラメーターがあることに注意してください(のみ保持)。LPTSTR inCStrIn
return "abcdefg";
ここで何が問題になるのかわかりません。を に変更しようとしCharset
ましたDllImport
がUnidcode
、それでも同じエラーが発生します。何か助けてください。
c# - C# から C++/CLR 関数を呼び出す - パラメーターを渡すことが機能しない
C# dll から C++/CLR dll の関数を呼び出そうとしています。->これはかなりうまくいっています。
私が直面している問題は、C# から C++/CLR の関数に渡す必要があるパラメーターが C++ で正しく到着しないことです。
最後に、文字列の配列といくつかのブール値パラメーターを C# から C++/CLR に渡す必要があります。
これまでに行ったこと/試したこと:
私のC++/CLR部分は次のようになります。
私のC#(dll-import)部分は次のようになります:
C# での関数呼び出しは次のようになります。
ID は次のように定義されます。