バイナリファイルに書き込むためにvC++ DLLから関数をエクスポートしています。 C++コードでは、ファイルは、後にファイルを追加し、bはバイナリモードのためのものであるために"a+b"
モードを使用してC#とC++のファイルオープンモードの不一致
FILE* fp = ::_tfopen (FilePath, _T("a+b"));
I使用して開かれます。
私のC#アプリケーションでこの関数をインポートしています。 C#から正しい引数を使ってこの関数を呼び出すと、ファイルは書き込まれますが、追加モードにはなりません。私が意味することは、関数がファイルを開きますが、そのコンテンツに追加するようなことはなく、その内容を破棄して、C#の引数が何であれ書き込むことです。
プラットフォームはVS2005です。助けてください?
- おかげ Viren
コメントからインポート
[DllImport("NameOfTheDLL.dll", CharSet = CharSet.Ansi)]
public static extern int function_name(IntPtr ptr,
[MarshalAs(UnmanagedType.LPWStr)] string FilePath);
次の関数の呼び出しです:
IntPtr ptr = some_Init_function();
function_name(handle, "C:\\FileName");
Virenでは、コメントに多くのコードを入れるのではなく、編集ボタンを見つけて質問を追加/修正してください。 –