2

これは私の DLL インポート ステートメントです。

[DllImport("KaracellLib.dll", EntryPoint = "karacell_bridge@8", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, ExactSpelling = true)]
    public static extern int karacell_bridge(int argumentCount, string[] argContent);

ネイティブ C コード (DLL に変換される) の実際の関数定義:

int __stdcall karacell_bridge(int argumentCount, char ** argContent )

C# コードで DLL を複数回呼び出そうとすると、前述のエラーが発生します。

エラーを解決するために次のことを試しました

  1. [ツール] -> [デバッグ] -> [全般] に移動して、モジュール ロード (マネージドのみ) での JIT 最適化を抑制します。
  2. C# dLL インポート定義に ref を追加しました。public static extern int karacell_bridge(int argumentCount, ref string[] argContent);

どんな助けでも大歓迎です!ありがとう!

4

1 に答える 1

0

問題は、複数のスレッドがC#プログラムでkaracell_bridge関数を呼び出していたためです。したがって、私がそれを処理すると、例外が修正されました:)

于 2012-10-18T06:04:57.590 に答える