postmessage を使用して FPC (Lazarus) アプリケーションにメッセージを渡す Windows 用の c++ dll があります。私はかなり単純な男なので、それはかなり単純なことです。これは、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でこれを行う方法の例を誰か教えてもらえますか? 簡単だとは思いますが、これまで Google はあまり役に立ちませんでした....