利用VC从DLL传递消息到EXE

2016-02-19 14:26 4 1 收藏

有了下面这个利用VC从DLL传递消息到EXE教程,不懂利用VC从DLL传递消息到EXE的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - 编程语言 】

     在进行DLL开发过程中,尤其在进行底层硬件开发过程中,比如实时接收数据,进程需要和应用程序进行交互,而DLL和应用程序最好的交互就是发消息了,在DLL中定义消息的方式和在应用程序中定义消息的方式非常相似。下面谈谈这两种定义的方法:

   一、在应用程序自定义消息方法:

   一般自定义消息有一定的范围,虽然说自定义消息从WM_USER开始,但是由于我们的工程里面一般还有很多其他的控件,他们也要占用一部分WM_USER消息范围,所以我们必须为他们留出一部分范围,这里,我们保留100个消息,一般情况下,这可以满足我们的要求。

  (1)定义消息的值。在我们要发生消息的地方(例如CMyView.cpp的开始部分)或者stdafx..h文件,进行如下定义:

 #define WM_MSG  (WM_USER+101)

  接下来的工作其实很简单,我们在前面说了,消息正常工作有3个部分必须协调:消息声明、消息映射、消息体。我们就一次进行手工加入。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  (2)首先在AFX_MSG块中加入消息声明:在CMyView.h中,找到如下部分,并加入消息声明:

          protected:       

            // {{AFX_MSG(CMyView)

            ......

            afx_msg LRESULT OnMyMsg(WPARAM wParam,LPARAM lParam);

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

            file:/

来源:http://www.tulaoshi.com/n/20160219/1606966.html

延伸阅读
类型引用 template class T class  Foo {     typedef T::SomeType SomeType; }; 这段代码在VC++中一点问题也没有,但是GCC并不允许,因为它不知道T::SomeType是什么。你需要改为: template class T class  Foo {     typedef typename T::SomeType SomeType; }; 通过typename T::SomeType告诉GCC,...
VC PB dll 和编写一般的DLL方法相同,需要注意以下两点: (1)调用约定 C函数有_stdcall、_cdecl、_fastcall等多种调用约定,调用约定用来说明函数参数的压栈顺序和由谁(函数自身还是调用者)来修改堆栈。关于调用约定的详细说明,请参考我转载的另一篇文章。 编写供PB调用DLL,请使用_stdcall调用约定,如下所示: extern "C" _declspe...
消息是指什么? 消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事情发生了。例如,单击鼠标、改变窗口尺寸、按下键盘上的一个键都会使Windows发送一个消息给应用程序。 消息本身是作为一个记录传递...
前面,我们分析了消息的基本理论和基本的函数及用法,接下来,我们将进一步讨论消息传递在MFC中的实现。 MFC消息的处理实现方式 初看MFC中的各种消息,以及在头脑中根深蒂固的C++的影响,我们可能很自然的就会想到利用C++的三大特性之一:虚拟机制来实现消息的传递,但是经过分析,我们看到事情并不是想我们想象的那样,在MFC中消息...
关于Access打包软件的有关阐述 ─────────────────── 注意:下列叙述只适用于 Office XP 注意:按以下步骤打包的数据库已在 PWin98OEM2 & IE5.0 & AccessRuntime2002 的环境中成功运行。 真正能够让使用 Access 编写的数据库独立运行的就是 Microsoft O...

经验教程

82

收藏

76
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部