私は C# で管理された GUI と C++ で管理されていない DLL を持っています。構造体が格納されている DLL 関数への参照によって構造体を渡します。構造体には、いくつかの wchar_t 要素といくつかの文字列があります。
DLL 内では、GUI に戻る前にすべてのデータが正常に表示されます。例えば:
struct1->ch1 = 0x1234;
struct1->ch2 = 0x5678;
struct1->ch3 = 'ab';
struct1->ch4 = 'cd';
しかし、構造体が DLL から返されると、データが文字化けします。
struct1->ch1 == 0x0034
struct1->ch2 == 0x0012
struct1->ch3 == 0x0078
struct1->ch4 == 0x0056
他の文字列要素は正常に返されます。
入力されている char データは 1 バイトなので、BYTE 型しか使用できないことはわかっていますが、これを理解したいと思います。
管理対象/管理対象外の関係に慣れていないので、何が起こっているのかわかりません。何か案は?