我有一个用于 Windows 的 c++ dll,它使用 postmessage 将消息传递给 FPC (Lazarus) 应用程序。这很简单,因为我是一个很简单的人。它是 Adobe Photoshop SDK 的一部分:
extern "C" BASICEXTERNALOBJECT_API long sendMessage(TaggedData* argv, long argc, TaggedData * retval)
{
// The returned value type
retval->type = kTypeString;
string s (argv[0].data.string);
int i = (int)(argv[1].data.fltval);
retval->data.string = "Not Found";
std::wstring stemp = s2ws(s);
LPCWSTR win = stemp.c_str();
HWND myApp= FindWindow(0,win);
if (myApp != NULL){
retval->data.string = "Found it";
PostMessage(myApp, WM_USER + 1, i,0);
}
return kESErrOK;
}
我正在努力使 Lazarus 应用程序在 OS X 上运行 - 运行良好。我现在需要在 XCODE c++ 中编译上述代码,以传递将由以下 FPC 代码接收的参数:
procedure TForm1.WndProc(var Message: TLMessage);
var
mykey : integer;
begin
inherited;
case Message.Msg of
WM_MY_MESSAGE:
begin
mykey := Message.WParam;
if (mykey > 0) and (mykey < 13) then
myActionFunction(mykey);
end;
end;
end;
任何人都可以在某处指出如何在 Xcode 中完成此操作的示例吗?我敢肯定这很容易,但到目前为止谷歌并没有给我太多帮助......