私はC++ DLL内のC++ DLL渡すバイト配列*
へのC#からbyte[]
を渡しています、私は受け入れ、istream
オブジェクトを読み取る関数を呼び出す必要があり、私が受け取るつもりchar*
としてのC#からbyte[]
とistream
に変換し、
C++ DLL
extern "C" _declspec(dllexport) bool CheckData(char* data, int dataLength)
C#
[DllImport("example.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern bool CheckData(byte[] incoming, int size);
public void Process(byte[] bytes)
{
CheckData(bytes, bytes.Length);
}
正常に動作するようですが、私はbyte[]
の同等のデータ型はC++でunsigned char*
であることがわかり、私はunsigned char*
への変更を考えたが、私はしたいと思いますchar*
ないunsigned char*
上で動作++ Cで最もstream
ask
1)データ型はchar*
とunsigned char*
のいずれも1バイトですが、どうしたのでしょうか? char*
でbyte[]
を引き続き使用しても問題はありますか?
2)問題が発生した場合、オブジェクトの作成にはunsigned char*
をどうすればよいですか?
お持ちのとおりです。 –
あなたは何が起こっているのか知っていますか?私は何が起こったのか理解したかった –
何も起こりません。事実上再解釈があります。 –