我有一个用于windows的FPC动态链接库,它使用postmessage将消息传递给c++ (拉撒路)应用程序。这是非常简单的事情,因为我是一个非常简单的人。它是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上工作--它工作得很好。我现在需要在XCODE中编译上面的代码,以传递一个参数,该参数将由以下c++代码接收:
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中做到这一点?我相信这很容易,但到目前为止,谷歌并没有给我太多帮助……
发布于 2013-05-15 23:56:31
您是否尝试过打开“命令行实用程序”组中的C++工具?这样,您就可以在C++中构建它,而不必对其进行转换
发布于 2013-05-16 13:08:41
您现有的源代码仅适用于Windows。
TForm1.WndProc
部件代码看起来像Delphi代码,而Delphi VCL框架只能在Windows上运行。不支持交叉编译。
在我看来,唯一可能的解决方案是从头开始重写整个应用程序。
https://stackoverflow.com/questions/16576771
复制相似问题