首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >相当于OS X C++的Windows Postmessage

相当于OS X C++的Windows Postmessage
EN

Stack Overflow用户
提问于 2013-05-16 07:42:50
回答 2查看 678关注 0票数 0

我有一个用于windows的FPC动态链接库,它使用postmessage将消息传递给c++ (拉撒路)应用程序。这是非常简单的事情,因为我是一个非常简单的人。它是Adobe Photoshop SDK的一部分:

代码语言:javascript
代码运行次数:0
运行
复制
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++代码接收:

代码语言:javascript
代码运行次数:0
运行
复制
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中做到这一点?我相信这很容易,但到目前为止,谷歌并没有给我太多帮助……

EN

回答 2

Stack Overflow用户

发布于 2013-05-16 07:56:31

您是否尝试过打开“命令行实用程序”组中的C++工具?这样,您就可以在C++中构建它,而不必对其进行转换

票数 0
EN

Stack Overflow用户

发布于 2013-05-16 21:08:41

您现有的源代码仅适用于Windows。

TForm1.WndProc部件代码看起来像Delphi代码,而Delphi VCL框架只能在Windows上运行。不支持交叉编译。

在我看来,唯一可能的解决方案是从头开始重写整个应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16576771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档