从本机代码使用SendMessage返回字符串 [英] Return string using SendMessage from native code
问题描述
大家好,
在C#系统服务中,我需要通过SendMessage()API调用从MFC主机获取一些字符串
窗口。我设法发送消息,但是可以
找不到将字符串返回到C#app的方法。
是否可以从返回值接收字符串返回值,wparam
或lparam?
如果有人这样做,请发布示例,
我会非常感激,
罗马
罗马,
是的,它是。您可以将参数(lParam或wParam)声明为
StringBuilder实例(因为我假设MFC代码只写入已经分配的
内存。如果是
声明SendMessage API。
希望这会有所帮助。
-
- Nicholas Paldino [.NET / C#MVP]
- mv*@spam.guard .caspershouse.com
< mu ****** @ hotmail.com>在消息中写道
news:11 ********************** @ g49g2000cwa.googlegr oups.com ...大家好,
在C#系统服务中,我需要通过SendMessage()API调用从MFC主机窗口获取一些字符串。我设法发送消息,但是无法找到将字符串返回到C#app的方法。
是否可以从C#中返回字符串返回值,wparam
或lparam?
如果有人这样做,请发布示例,
我将不胜感激,
罗马
< blockquote>谢谢,为了快速响应,
实际上我是这样做的:
C#side
StringBuilder sb = new StringBuilder(256);
SendMessage(process.MainWindowHandle,WM_GET_AUTH_MEMBER,0,sb);
C ++方
CString member =" SomeString" ;
strcpy((char *)lParam,member.GetBuffer());
然后在C#方面sb尚未更改
有什么想法吗?
谢谢
您对SendMessage的声明是什么?
- -
- Nicholas Paldino [.NET / C#MVP]
- mv * @ spam.gua rd.caspershouse.com
< mu ****** @ hotmail.com>在消息中写道
news:11 ********************** @ g14g2000cwa.googlegr oups.com ...谢谢,为了快速回复,
实际上我是这样做的:
C#side
StringBuilder sb = new StringBuilder(256);
SendMessage(process.MainWindowHandle, WM_GET_AUTH_MEMBER,0,sb);
C ++方
CString成员=" SomeString" ;;
strcpy((char *)lParam,member.GetBuffer());
那么在C#方面sb还没有改变
有什么想法吗?
谢谢
Hi all,
In C# system service I need to get some string from MFC mainframe
window by SendMessage() API call. I managed to send message, but can
not find the way to return string to C# app.
Is that possible to receive string back in C# from return value, wparam
or lparam?
Please if someone did it post the example,
I would greatly appreciate,
Roman
Roman,
Yes, it is. You can declare the parameter (lParam or wParam) as a
StringBuilder instance (since I assume that the MFC code is only writing to
memory that is already allocated. If it is not, then shame on it) when
declaring the SendMessage API.
Hope this helps.
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
<mu******@hotmail.com> wrote in message
news:11**********************@g49g2000cwa.googlegr oups.com...Hi all,
In C# system service I need to get some string from MFC mainframe
window by SendMessage() API call. I managed to send message, but can
not find the way to return string to C# app.
Is that possible to receive string back in C# from return value, wparam
or lparam?
Please if someone did it post the example,
I would greatly appreciate,
Roman
Thanks, for quick response,
actually I did it like this:
C# side
StringBuilder sb = new StringBuilder(256);
SendMessage(process.MainWindowHandle, WM_GET_AUTH_MEMBER, 0, sb);
C++ side
CString member = "SomeString";
strcpy((char*)lParam, member.GetBuffer());
Then on C# side sb has not been changed
Any idea ?
Thanks
What is your declaration of SendMessage?
--
- Nicholas Paldino [.NET/C# MVP]
- mv*@spam.guard.caspershouse.com
<mu******@hotmail.com> wrote in message
news:11**********************@g14g2000cwa.googlegr oups.com...Thanks, for quick response,
actually I did it like this:
C# side
StringBuilder sb = new StringBuilder(256);
SendMessage(process.MainWindowHandle, WM_GET_AUTH_MEMBER, 0, sb);
C++ side
CString member = "SomeString";
strcpy((char*)lParam, member.GetBuffer());
Then on C# side sb has not been changed
Any idea ?
Thanks
这篇关于从本机代码使用SendMessage返回字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!