目前正在设计一个系统(C++实现),
需要将所有日志信息输出到多个不同的设备(文件,发送到其他服务器),
需要采用缓冲方式(比如满100条输出), 我要将一个结构体struct发送到windows消息队列中,
如何使用SendMessage/PostMessage和GetMessage函数来处理消息,
谁能告诉我该怎么用?
如果不能使用缓冲区,我的想法是:
使用一个信号量,再使用一个std::queue容器,
这样实现的话是否会产生问题?
需要将所有日志信息输出到多个不同的设备(文件,发送到其他服务器),
需要采用缓冲方式(比如满100条输出), 我要将一个结构体struct发送到windows消息队列中,
如何使用SendMessage/PostMessage和GetMessage函数来处理消息,
谁能告诉我该怎么用?
如果不能使用缓冲区,我的想法是:
使用一个信号量,再使用一个std::queue容器,
这样实现的话是否会产生问题?
这里就是我要的答案,
但是我的是服务器程序,没有窗口,
不能获取窗口句柄,我该如何处理呢?
#include <iostream>
#include <windows.h>
using namespace std;int main()
{
string str="这是我要发送的给另外一个进程字符串。";
COPYDATASTRUCT myCopyDATA;
myCopyDATA.cbData=str.size();//数据块长度
myCopyDATA.lpData=&str;//待发送数据的首地址
char * MessageName="SysLog";
UINT msgID = RegisterWindowMessage(MessageName);
//cout<<msgID<<endl<<GetLastError()<<endl;
BOOL pm = SendMessage((HWND)msgID, WM_COPYDATA, 0 ,(LPARAM)&myCopyDATA);
cout<<pm<<GetLastError();//输出0 1400(窗口句柄无效)
}输出的错误代码为1400(窗口句柄无效),怎么修改才能成功发送消息呢?