怎样在windows下使用系统的消息队列,我有一个日志接口com,要从A机器写日志数据到另外一台机器B上的消息队列,在B机器上处理消息队列,将消息取出根据不同的消息写B机器上不同的日志表中。请问,我要怎样做,请高手给出具体步骤,比如要用到些什么函数。
谢谢
谢谢
解决方案 »
- 怎么修改CRectTracker的框的颜色呢
- 白痴问题:mfc feature pack怎么用?
- 完成端口WSARecv
- VC里面glm出错
- 求matlib.h
- 程序出现异常,提示file:wincore.cpp, line:980,一直没有搞清楚?
- 在DLL中创建COM对象不成功,在EXE中创建能够成功,问题非常奇怪,请高人指点!
- 高分求助,仙人指路
- 我为什么用ole view看不到自己刚添加的组件,注册过的,并且测试程序也可以运行
- 子窗口遮挡父窗口,父窗口为什么不执行OnPaint函数?
- 散分的问题!
- 为什么我的使用CopyFileEx函数时编译提示undeclared identifier??
http://tech.china.com/zh_cn/netschool/programme/c/656/20001207/01_12.html看完之后问题应该就解决了
可以把消息存为一种固定格式的文件,然后两边统一处理,
我以前用过消息队列的东西,不过是IBM的MQ Series
输入消息产生时,先让HOOK处理,然后发给当前获得输入焦点的程序或鼠标所在的窗口。其他消息或发给注册了指明要该消息的窗口,或就是有一个目标窗口(就是SendMessage之类)。////////不是每个线程都有消息队列的,只有那些有调用UI函数的线程才会被分配一个THREADINFO结构,进而有它自己的消息队列。windows有两种形式的消息队列,应用程序队列和系统队列。有些消息是放在应用程序队列中的,比如某个窗口的一些重绘事件。
另外一些消息是放在系统队列中的,比如鼠标事件。也就是说消息如果只与单个应用有关就会放在应用程序队列中,而与系统有关就会放在系统队列中。
1.队列消息和非队列消息 从消息的发送途径上看,消息分两种:队列消息和非队列消息。队列消息送到系统消息队列,然后到线程消息队列;非队列消息直接送给目的窗口过程。这里,对消息队列阐述如下:Windows 维护一个系统消息队列(System message queue),每个GUI线程有一个线程消息队列(Thread message queue)。
鼠 标、键盘事件由鼠标或键盘驱动程序转换成输入消息并把消息放进系统消息队列,例如WM_MOUSEMOVE、WM_LBUTTONUP、WM_KEYDOWN、WM_CHAR等等。Windows每次从系统消息队列移走一个消息,确定它是送给哪个窗口的和这个窗口是由哪个线程创建的,然后,把它放进窗口创建线程的线程消息队列。线程消息队列接收送给该线程所创建窗口的消息。线程从消息队列取出消息,通过Windows把它送给适当的窗口过程来处理。
除了键盘、鼠标消息以外,队列消息还有 WM_PAINT、WM_TIMER和WM_QUIT。
这些队列消息以外的绝大多数消息是非队列消息。
2.系统消息和应用程序消息 从消息的来源来看,可以分为:系统定义的消息和应用程序定义的消息。系统消息ID的范围是从0到WM_USER-1,或0X80000到0XBFFFF;应用程序消息从WM_USER(0X0400)到0X7FFF,或0XC000到0XFFFF;WM_USER到0X7FFF范围的消息由应用程序自己使用;0XC000到0XFFFF范围的消息用来和其他应用程序通信,为了ID的唯一性,使用::RegisterWindowMessage来得到该范围的消息ID。
或者http://www.microsoft.com/msmq