将 unicode 字符串从 VB.net 传递到 C++动态链接库
我尝试了很多事情,但我无法让它发挥作用。我可以向 C++ 传递和接收普通字符串 (char*),但无法在 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 的
任何帮助,非常感谢。
莱昂
I have tried a lot of things but I cannot get this to work. I can pass and receive ordinary strings (char*) to C++, but I cannot receive Unicode strings (w_char_t *
) in C++.
Here are some bits of the code on c++
__declspec(dllimport) int __stdcall readFile(const w_char_t *file_path)
on VB.net
Public Declare Function readFile Lib "MyDll.dll" Alias "_readFile@4" (ByVal file_path As String) As Integer
when I change w_char_t
to char
I receive the correct string.
I have found a lot of material on VB6, but not for VB.net
Any help greatly appreciated.
Leon
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
另外,你的 C++ 代码有 dllexport 而不是 dllimport,对吧?
Also, your C++ code has dllexport not dllimport, right?
尝试将 UnicodeString 转换为 String(通过使用某些系统定义函数),然后将该字符串或 char* 传递给 C++ DLL。
希望这会起作用。
Try converting UnicodeString to String (by using some System Defined Function), and then pass that string or char* to C++ DLL.
Hope this will work.