【发布时间】:2012-04-12 15:05:33
【问题描述】:
我一直在寻找从 Microsoft Visual C++ 向另一个在 Delphi 中创建的应用程序发送消息 2 小时。
在 delphi 中,我知道如何读取数据。但我不知道如何在 MVC++ 中发送消息
希望你能给我一个代码。
所以对于下一个代码,我想在 Microsoft Visual Studio C++ 2010 中进行翻译,我的项目是控制台项目。
const
MY_MESSAGE = WM_USER + 4242;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
txt: string;
begin
txt := 'Hello World';
SendMessage(Form1.Handle, MY_MESSAGE, 0, DWORD(PChar(txt)));
end;
end.
我应该使用这段代码读取数据。我也想兼容。
const
MY_MESSAGE = WM_USER + 4242;
type
TForm1 = class(TForm)
// Handler that receive the Message
procedure MessageReceiver(var msg: TMessage); message MY_MESSAGE;
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.MessageReceiver(var msg: TMessage);
var
txt: PChar;
begin
txt := PChar(msg.lParam);
msg.Result := 1;
ShowMessage(txt);
end;
end.
所以我的应用程序包含两个部分:一个在 Microsoft Visual Studio 中,我使用 opencv,我想向第二个应用程序发送消息,它是在 Delphi 中创建的。
【问题讨论】:
-
您的意思是使用 SendMessage 发送消息?
-
我不确定,但我认为是其中之一。既然您知道如何在 Delphi 中阅读,您可以发布该代码,所以有人知道您需要什么样的写对应物?此外,由于您需要 VC++ 代码,因此这实际上不是 Delphi 问题。
-
没有 Windows 管道这样的东西。你是说命名管道吗?
-
你说得对,我刚刚重写了我的问题。
-
您不能使用用户定义的消息来跨进程发送指针。您需要使用
WM_COPYDATA。