ViH*_*ViH 1 c++ mfc postmessage visual-c++
如何发送int数组:
int *pars = new int[4];
pars[0] = 87675;
//...
pars[3] = 1024;
PostMessage(?);
Run Code Online (Sandbox Code Playgroud)
然后正确接收并清除内存:
LONG OnMessage(WPARAM wParam, LPARAM lParam) {
//?
}
Run Code Online (Sandbox Code Playgroud)
一切都在一个过程中。
在单个进程中,您只需通过LPARAM.
int *pars = new int[4];
pars[0] = 87675;
//...
pars[3] = 1024;
PostMessage(hWnd, WM_MY_CUSTOM_MSG, 0, (LPARAM)pars);
Run Code Online (Sandbox Code Playgroud)
然后从 中取出lParam,使用然后释放:
LONG OnMessage(WPARAM wParam, LPARAM lParam) {
int *pars = (int*)lParam;
// use it ...
delete[] pars;
}
Run Code Online (Sandbox Code Playgroud)
不理想,但这是 WinAPI ...
对于更类似于 RAII 的方法,请将指针包裹在unique_ptr:
LONG OnMessage(WPARAM wParam, LPARAM lParam) {
std::unique_ptr<int[]> pars((int*)lParam);
// use it normally ...
// it's freed automatically
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |