アンマネージ コードによって呼び出されるインターフェイスがあります。BSTR 型を渡しますが、データは ASCII 文字列です。ファイルに書き込んでいるときに、予期しない文字が表示されます。データがどのように移動するかについての私の考え Unmanaged[BSTR[ASCII]] --> Managed[String[ASCII]] --> File[Unicode[ASCII]] したがって、入力時の文字は出力時の文字と同じでなければなりません。これは正しいです?アンマネージ コードによって呼び出されるインターフェイス関数は次のとおりです。
//C# interface called by unmanged code
public void WriteOutFile([In] [MarshalAs(UnmanagedType.BStr)] String asciiData)
{
File.WriteAllText(fileName, asciiData);
}