使用WinAPI在两个EXE之间发送字符串

时间:2013-02-25 19:30:34

标签: winapi

我有两个运行的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

当我运行它并传递消息时,我在接收应用程序中收到访问冲突错误。

enter image description here

尝试搜索LPCWSTR和LPARAM之间的转换,但找不到任何有用的示例。更糟糕的是Bad Ptr错误。我记得读过发送的指针可能无法用于第二个进程或类似的东西。但我不知道从哪里开始寻找。

如何将字符串从一个EXE发送到另一个EXE?

1 个答案:

答案 0 :(得分:2)

令人惊讶的是,说实话已经走得那么远了。不知道Cast的“Hello”到底是做什么的,但它只会在发送exe中,除非你只发送四个ascii字符并没有太多用处。

寻找WM_CopyData,它就是为此而设计的。