Dll给主程序传递数据的试验
来源:互联网 发布:mac os怎样卸载软件 编辑:程序博客网 时间:2024/05/23 11:49
做的一个项目,需要在Dll中的某一时刻给主窗体传递一些数据。
考虑使用线程或定时器不如使用Windows消息,所以做了个试验。试验是成功的。
说明:主程序窗体类为CMainDlg,MFC对话框程序
Dll为MFC动态链接库,类名CDllTest.
在主程序和Dll中定义相同的消息
#define WM_TEST WM_USER + 110
2.
在主程序中声明消息处理函数
protected:
afx_msg void OnMsgTest(WPARAM wParam, LPARAM lParam);
3.
实现消息处理函数
void CMainDlg::OnMsgTest(WPARAM wParam, LPARAM lParam)
{
//////
}
4.
使用ON_MESSAGE宏指令将消息映射到消息处理函数中
BEGIN_MESSAGE_MAP(CMainDlg, CDialog)
ON_WM_CREATE()
ON_MESSAGE(WM_TEST, OnMsgTest)
//ON_REGISTERED_MESSAGE (WM_MY_MESSAGE,OnMyMessage)
END_MESSAGE_MAP()
5
在dll中添加如下代码:
将要传递的数据使用WPARAM或者LPARAM 强转一下,就可以使用以下代码给主程序发送数据了
HWND hMainDlg = AfxGetMainWnd()->m_hWnd;
::SendMessage(hMainDlg, WPARAM wParam, LPARAM lParam);
这种方法的优点是占用资源比使用线程或者定时器传递指针占用资源少,适用于少量数据传送。
过几天把适用于传递大量数据的方法记录出来。
- Dll给主程序传递数据的试验
- DLL返回字符给主程序
- 利用回调函数实现DLL与Qt主程序的数据交互,进一步实现对Qt主程序中的信号触发
- 主程序与DLL之间的全局变量问题
- 主程序与DLL之间的全局变量问题
- dll 释放时主程序最小化的问题解决
- Dll中的窗体嵌入主程序的Panel
- 主程序与DLL之间的全局变量问题
- 主程序与DLL之间的全局变量问题
- Flex--主程序与弹出窗口之间传递数据
- 传递数据给Fragment的方法
- 试验数据的保存
- PHP页面数据采集程序的主程序
- qt dll的调用及与主程序的交互
- 汇编语言的主程序与子程序之间的参数传递方式
- 写DLL引起与主程序资源冲突的解决方法
- MFC的DLL中调用函数指针与主程序交互
- 关于DLL中new在主程序中释放的问题
- ubuntu 安装chrome浏览器
- jspSmartUpload 组件的使用方法
- 实现对文件进行加密,解密程序代码
- javascript之DOM详解
- servlet笔记02:tomcat目录结构
- Dll给主程序传递数据的试验
- ubuntu 12.04 LTS 发布
- 利用Crosstool-ng 1.3.3 生成powerpc交叉编译工具链
- mb-gdb调试Linux kernel 入门指导
- 5分钟搞定250篇参考文献
- STL 整理map、set、vector、list、stack、queue、deque、priority_queue
- 版本号
- linux串口驱动——s3c6410平台(一)
- SQL Server 2000 未公开的存储过程