我有两个运行的VC ++应用程序,都是由我编写的。它们不是同一EXE的两个实例;他们是完全不同的项目。我想从一个字符串发送一个字符串。
第一个应用程序具有以下代码:
HWND tgtHwnd = FindWindow(_T("Target_Class"), _T("Target_Name"));
SendMessage(tgtHwnd, 1234, 0, (LPARAM)L"Hello");
第二个代码处理此消息:
// snippet of the WndProc function
case 1234:
LPCWSTR myText = (LPCWSTR)lParam;
MessageBox(NULL, myText, _T("My Text"), 0);
// End snippet
当我运行它并传递消息时,我在接收应用程序中收到访问冲突错误。
尝试搜索LPCWSTR和LPARAM之间的转换,但找不到任何有用的示例。更糟糕的是Bad Ptr错误。我记得读过发送的指针可能无法用于第二个进程或类似的东西。但我不知道从哪里开始寻找。
如何将字符串从一个EXE发送到另一个EXE?
答案 0 :(得分:2)
令人惊讶的是,说实话已经走得那么远了。不知道Cast的“Hello”到底是做什么的,但它只会在发送exe中,除非你只发送四个ascii字符并没有太多用处。
寻找WM_CopyData,它就是为此而设计的。