VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1133|回复: 10

dll与exe之间传递数据的问题

[复制链接]

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
发表于 2020-3-6 19:00:01 | 显示全部楼层 |阅读模式
应该是进程内传递数据的问题吧?
我用的是自定义消息,在dll中
int cTxtLen = GetWindowTextLength(p->hwnd);
                         
char*   szWndName   =   new   char[cTxtLen + 1];
               
GetWindowText(p->hwnd,szWndName, cTxtLen+1);

SendMessage(g_hWnd,WM_DISPLAY_MSG,(WPARAM)szWndName,0);

delete [] szWndName;

exe接受端该如何写呢?
我自己写的总是不对。
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-5-29 10:30:01 | 显示全部楼层
被你delete了。
在你的exe里new出来,然后把指针和长度给dll,dll对长度判断,合适就把内容写进去。
exe收到用完了自己delete。

或者像你这样写也行,不过dll这里别delete,dll再提供一个函数,参数是指针,专门delete。

另外你在exe里delete也行,不推荐这样。
回复

使用道具 举报

0

主题

36

帖子

13.00

积分

新手上路

Rank: 1

积分
13.00
发表于 2020-6-1 15:15:01 | 显示全部楼层
使用文件或者使用注册表进行数据传递吧!
我都是这样做的,还不错.
回复

使用道具 举报

0

主题

10

帖子

9.00

积分

新手上路

Rank: 1

积分
9.00
发表于 2020-6-9 20:15:02 | 显示全部楼层
我觉得一楼说的不对。。。
sendmessage一定会等到exe处理完以后才返回,你的exe里面如果正确处理完WM_DISPLAY_MSG消息,下面的delete才起作用,所以根本不影响。
在exe的主窗口加个消息响应函数就可以了

ON_MESSAGE(WM_DISPLAY_MSG,onDisplay)
........

你贴出你怎么写的,应该是你写的有问题
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-6-10 12:30:02 | 显示全部楼层
在exe中的g_hWnd这个窗口(窗口不要搞错)的回调函数中,拦截WM_DISPLAY_MSG消息。

另外WM_DISPLAY_MSG的定义不要和系统的或者已经存在的重复.使用WM_USER+XXXX
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-21 00:15:01 | 显示全部楼层
说得都不错,受教了响应消息函数我是这么写的:
BOOL CSurveillantView::onDisplay(WPARAM wparam,LPARAM lparam)
{
   AfxMessageBox(char*(wparam));
}
请大家指教!
回复

使用道具 举报

0

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-6-21 21:45:01 | 显示全部楼层
你直接把delete注释掉,看看是什么结果。
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-6-26 19:15:01 | 显示全部楼层
进程间传递数据
共享内存 管道.....
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-30 20:00:02 | 显示全部楼层
把delete注释掉,运行后windows提示错误,然后终止程序 -_-!
我原来也是遇到这种错误
更正 应该是  AfxMessageBox((char*)wparam);
回复

使用道具 举报

1

主题

5

帖子

5.00

积分

新手上路

Rank: 1

积分
5.00
 楼主| 发表于 2020-6-30 21:15:01 | 显示全部楼层
回7楼:都说了这应该是进程内通信吧?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表