3

ファイルを別の形式に変換する DLL 関数があります。この関数は、複数のファイルを出力として生成します。したがって、2 番目のパラメーターに出力ファイルのパスを入力します。

C++ 関数は次のように定義されます。

int Convert(LPTSTR lpSource, TCHAR outputFileName[][MAX_PATH]);

C# アプリケーションが出力ファイル パスを正しく受信できるように、2 番目のパラメーターをマッシュアップするにはどうすればよいですか?

[DllImport("Convert.dll")]
private static extern int Convert(
  [MarshalAs(UnmanagedType.LPTStr)] string lpszSource,
  ????
);

前もって感謝します。

4

2 に答える 2

0

私はついにそれを理解しました。C++ 関数を次のように変更しました。

int Convert(LPTSTR lpSource, LPTSTR *plpOutputFileName, int size);

そして、次のような C# 宣言:

[DllImport("Convert.dll")]
private static extern int Convert(
    [MarshalAs(UnmanagedType.LPTStr)] string lpszSource,
    [In, Out] String[] outputFileName,
    int size
);

助けてくれてありがとう。

于 2013-06-18T05:49:59.993 に答える