首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在.NET框架中将数据从VC++发送到Visual Basic

在.NET框架中将数据从VC++发送到Visual Basic
EN

Stack Overflow用户
提问于 2010-03-03 01:57:24
回答 2查看 143关注 0票数 0

我花了很长时间才弄明白这一点,我在网上找到的教程并不完整,或者是针对VB6.0的(在某些情况下是过时的)。在C++方面,我有以下几点:

.hwndExternalApplication = FindWindow(NULL,L“直播客户端”);SendMessage(hwndExternalApplication,WM_SETTEXT,NULL,(LPARAM)"Hello");.....

"Dromocast Client“是我的visual basic应用程序,我检查以确保它不为空。事实上,我确信我在VB端得到了一些数据。在我的Visual Basic端,我有以下内容:

代码语言:javascript
运行
复制
Protected Overrides Sub WndProc(ByRef m As Message)
    Select Case (m.Msg)
        Case WM_SETTEXT
            Dim strTemp As String
            strTemp = System.Runtime.InteropServices.Marshal.PtrToStringUni(m.LParam)
            MessageBox.Show("GOT THE MESSAGE, SETTING LOCAL VARIABLE")
    End Select

    MyBase.WndProc(m)
End Sub

当我发送数据时,它是垃圾,这意味着strTemp显示为所有这些中文字符,而我在visual basic程序上的标题栏也被一堆中文字符弄乱了。我猜是我的"SendMessage“写错了,或者我做了什么傻事,但我不知道是什么。我不是windows程序员,所以我正在尝试通过googling....any帮助解决这个问题,我将非常感激。

EN

回答 2

Stack Overflow用户

发布于 2010-03-03 02:00:30

尝试将(LPARAM)"Hello"更改为(LPARAM)L"Hello"。我认为.net期望字符串是宽字符。

票数 0
EN

Stack Overflow用户

发布于 2010-03-03 17:24:40

您的C字符串不是Unicode字符串,而是ANSI字符串。尝试使用PtrToStringANSI而不是PtrToStringUnicode

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2365451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档