何時もお世話になります。
64BitパソコンでJTDXより Hamlog に直接QSOデータを転送しようとしています。
64Bitでは Hamlog50.DLL が使えないとの事なので Th527api の中の HamlogMs.txt の利用を考えています。
#define THW_ENTER 0x10000 等は lohqso.h に記載しました。
//Th527api
//HamlogMs.txt
//Hamlogw.exe は起動させておく。
/************ C言語での例 ****** 実験してない *********/ との事ですが丸写しで下記のコードを logqso.cpp に記載。
void LogQSO::append_Hamlog_hdb_new()
{ //文字列を Hamlog に送る。
int cmmd;
HWND Hwnd1, Hwnd2;
COPYDATASTRUCT cds;
char buffs[256];
Hwnd1 = FindWindow("TThwin", NULL);
if (Hwnd1 < 1)
//
ハムログが起動していない
return;
cmmd = 1;
//
コールサインを指定
cmmd |= THW_FOCUS;
cmmd |= THW_ENTER;
cds.dwData = cmmd;
strcpy(buffs, "JG1MOU"); // コールサイン文字列
cds.cbData = strlen(buffs) + 1; // 文字列の長さ(ヌル文字分を+1)
cds.lpData = &buffs[0]; // 文字列のポインタ
Hwnd2 = SendMessage(Hwnd1, WM_COPYDATA,
(WPARAM)Form1->Handle, (LPARAM)&cds);
if (Hwnd2 > 0)
SetForegroundWindow(Hwnd2); // 入力ウインドウにフォーカス}
Qt を使っています。
ビルドすると下記の様なエラーが出ます。
解決策のヒントでも良いので是非お願いします。
C:\JTSDK64-Tools\tmp\wsjtx\logqso.cpp: In member function 'void LogQSO::append_Hamlog_hdb_new()':
C:\JTSDK64-Tools\tmp\wsjtx\logqso.cpp:363:17: error: ISO C++ forbids comparison between pointer and integer [-fpermissive]
if (Hwnd1 < 1) // ハムログが起動していない
^
C:\JTSDK64-Tools\tmp\wsjtx\logqso.cpp:373:26: error: 'Form1' was not declared in this scope
(WPARAM)Form1->Handle, (LPARAM)&cds);
^~~~~
C:\JTSDK64-Tools\tmp\wsjtx\logqso.cpp:373:26: note: suggested alternative: 'frm1'
(WPARAM)Form1->Handle, (LPARAM)&cds);
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!