我有一個在C#中的託管GUI和在C++中的非託管DLL。我通過引用來傳遞結構的DLL函數的結構。該結構有幾個wchar_t元素和幾個字符串。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數據是單個字節,所以我知道我可以只使用BYTE類型,但我想要解決這個問題。
我是新來的託管/非託管關係,所以我不知道發生了什麼事情。有任何想法嗎?
試試看看[這個問題](http://stackoverflow.com/questions/6089214/how-do-i-marshal-wchar-t-from- C到C-尖銳-AS-一個出 - 對米或返回值)及其選定答案。看起來wchar_t不能像你這樣做從託管代碼傳遞到非託管代碼。 – jszigeti 2013-02-14 01:19:23