У меня есть c ++ dll для окон, которые передают сообщение в приложение FPC (Lazarus), используя postmessage. Это довольно простые вещи, так как я довольно простой парень. Это часть 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 не слишком помог мне до сих пор ….
Вы пытались открыть инструмент C ++ в группе «Утилита командной строки»? Таким образом, вы можете построить его в C ++ без необходимости конвертировать его
Ваш существующий исходный код предназначен только для Windows.
TForm1.WndProc
код части выглядит как код Delphi, а среда Delphi VCL предназначена только для Windows. Кросс-компиляция не поддерживается.
Мне кажется, что единственно возможное решение — переписать все приложение с нуля.