将unicode字符串从VB.net传递给C ++ dll

时间:2010-12-15 04:31:57

标签: c++ vb.net dll dllimport dllexport

我尝试了很多东西,但我无法让它发挥作用。我可以传递和接收普通字符串(char *)到C ++,但我不能在C ++中接收Unicode字符串(w_char_t *)。

以下是c ++上的一些代码

__declspec(dllimport) int __stdcall readFile(const w_char_t *file_path)

在VB.net上

Public Declare Function readFile Lib "MyDll.dll" Alias "_readFile@4" (ByVal file_path As String) As Integer

当我将w_char_t更改为char时,我收到了正确的字符串。

我在VB6上发现了很多资料,但不是VB.net

非常感谢任何帮助。

莱昂

2 个答案:

答案 0 :(得分:0)

尝试将UnicodeString转换为String(通过使用某些系统定义的函数),然后将该字符串或char *传递给C ++ DLL。

希望这会奏效。

答案 1 :(得分:0)

Public Declare Unicode Function readFile Lib "MyDll.dll" Alias "_readFile@4" (ByVal file_path As String) As Integer

另外,你的C ++代码有dllexport而不是dllimport,对吧?