请问在win32中自定义的消息,如何返回一个字符串值给发消息的程序?

netyou 2004-11-10 07:38:53
我有两个程序,一个是用bcb做的,另外一个程序是用win32代码编写的,现在我如果在bcb的程序中发一条消息给win32的程序里面(譬如使用sendmessagetimeout发消息),那么win32程序接受到消息处理完之后如何返回一个字符串值给bcb调用的程序呢?
请高手赐教,谢谢

我用以下的代码返回字符串"12121"给bcb里面的程序,但是在bcb里确返回不了我想要的字符串"12121",希望高手给我指点一下,看什么地方有什么问题,谢谢:
我在win32里面的代码如下:
LRESULT CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case YOURMSG:
// 这里是我加的
lParam=(LPARAM)"12121";
break;
// other cases...
}
return 0;
}

然后我在bcb里面调用:
HWND hWnd;
char Ti[255];
hWnd=FindWindow("test class",NULL);
SendMessageTimeout(hWnd,YOURMSG,0,(LPARAM)Ti,SMTO_ABORTIFHUNG |SMTO_NORMAL,1000,&result);

Ti的结果并不是字符串"12121"
...全文
141 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
铖邑 2004-12-05
  • 打赏
  • 举报
回复
LRESULT CALLBACK DialogProc(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam)
{
switch (Msg)
{
case YOURMSG:
// 这里是我加的
lParam=(LPARAM)"12121";// lParam是一个指针,不是引用,你改变的只是指针的值,而不是指针所指向的内存。可以这样写:strcpy((char *)lParam, 12121"),但是很危险,不推荐采用。
break;
// other cases...
}
return 0;
}
Demonia 2004-12-05
  • 打赏
  • 举报
回复
问一个问题, 用SendMessage 之类的向另外一个程序发消息, 消息还会回流回发送的进程吗??
我印象中好像不会, 要达到这种效果应该用全局的消息钩子才可以. 不知道是不是这样, WIN32的来高人指点一下
Demonia 2004-12-05
  • 打赏
  • 举报
回复
关注
netyou 2004-11-11
  • 打赏
  • 举报
回复
有这方面经验的朋友吗?
cc_sky 2004-11-10
  • 打赏
  • 举报
回复
关注一下!!!!!!!!!!

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧