C#の文字列をネイティブのC++ DLLの関数に送信します。ここでC#からC++に文字列を送信するInterop
は私のコードです: C#の方:
[DllImport(@"Native3DHandler.dll", EntryPoint = "#22",
CharSet = CharSet.Unicode)]
private static extern void func1(byte[] path);
public void func2(string path)
{
ASCIIEncoding encoding = new ASCIIEncoding();
byte[] arr = encoding.GetBytes(path);
func1(this.something, arr);
}
C++側:
void func1(char *path)
{
//...
}
私はC++側で取得することは関係なく、どのような空の文字列、毎回、あります私は送る。 ヘルプ?
ありがとうございました。
アルドより正確な渡しパラメーター定義のために、 [MarshalAs(UnmanagedType.LPStr)]などを使用してください。詳細はMSDNを参照してください – abatishchev
C++側で文字列が空であると判断する方法は? – grieve