2
我寫了一個C++ DLL用下面的函數出口帶char *參數的DLLImport。只有一個字符傳遞
extern "C" BOOL WINAPI SetUserPassword(const char* u, const char* p)
當從C#調用這個我使用下面的代碼
[DllImport("mydll.dll")]
private static extern int SetUserPassword(String user, String password);
現在,當SetUserPassword
只叫我得到每個參數的第一個字母。我做了一些谷歌搜索,發現String
可能不是最好的使用IntPtr和Marshal.StringToBSTR()
嘗試,但這也不起作用。
這應該如何正確構造?如果需要,我可以修改C ++ DLL。
啊!我忘了在WinCE上提及IM。我所做的只是將我的C++函數改爲接受'wchar_t',然後將其轉換爲ANSI'std :: string',現在它全部正常工作 - 謝謝! – Chris
同意。或[MarshalAs]。具有「mydll.dll」的代碼段未被複制/粘貼。 Tsk,tsk,+1進行心理調試。 –