将 unicode 字符串从 VB.net 传递到 C++动态链接库

发布于 2024-10-07 20:02:51 字数 517 浏览 3 评论 0原文

我尝试了很多事情,但我无法让它发挥作用。我可以向 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

彩虹直至黑白 2024-10-14 20:02:51
Public Declare Unicode Function readFile Lib "MyDll.dll" Alias "_readFile@4" (ByVal file_path As String) As Integer

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

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

Also, your C++ code has dllexport not dllimport, right?

溺孤伤于心 2024-10-14 20:02:51

尝试将 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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文