HAMLOG プログラム開発室


一括表示
タイトル
記事No
投稿日
投稿者

dwData=28 QSOデータをオープンが失敗?する
979
2021/12/31(Fri) 23:29:48
JQ3DPB roy
こんにちは。
Win7 64bit + Visual Studio 2019 環境で C++ Windows デスクトップ アプリを作成中です。
HAMLOG が起動している状態で自作アプリから HAMLOG.hdb を読込もうとしています。
[設定2]-[QSOデータの共有オープン]のチェックはオフ、
HAMLOGW.EXE 5.35 (2021/12/26)、HAMLOG50.DLL (Dec 26 2021)です。

0. HAMLOG のメイン窓のみ表示した状態。データ件数は 2 件。
1. Hamlog50.dll を LoadLibrary して、GetProcAddress で利用する関数を準備。
 →GetThdllVersion() で DLL が読みこめていることを確認済み。
2. FindWindow で HAMLOG 本体の HWND を取得。
 →SetWindowText() でウィンドゥ タイトルの書き換えを確認済み。
3. WM_COPYDATA で dwData=27、cbData=0、lpData=0 を送信。
4. DLL 関数の dbf_open で HAMLOG.hdb を指定。
 →戻り値は SUCCESS、TDBFh.rcount は 2 である。
 →試しに手順 3. を省くとエラーになるので、手順 3. は動作しているっぽい
5. (ここで色々処理予定だが今は何もしていない)
6. DLL 関数の dbf_close を実行。
7. WM_COPYDATA で dwData=28、cbData=0、lpData=0 を送信。
 →データの表示修正ウィンドゥを表示しているとそのHWNDを返してくる

上のような処理順で試していますが、手順 7. の後で HAMLOG の動作がよくわらない状態になります。
a. HAMLOG は変化がないように見えますが、各レコードの各カラムをクリックすると空欄になる
b. レコードをダブルクリックすると「No.21 データ読み込みエラー (~~\HAMLOG.hdb)」

WM_WM_COPYDATA や各種関数の呼び出し前に何か必要な手順が抜けていたりするのでしょうか?
どうぞよろしくお願いいたします。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: dwData=28 QSOデータをオープンが失敗?する
980
2022/01/01(Sat) 21:24:00
JG1MOU浜田
> 7. WM_COPYDATA で dwData=28、cbData=0、lpData=0 を送信。

dwData = 28 | 0x400000;
これで試してみてください。

自分でもよくわからなくなってきてますが、hQSLアプリではこのように
して、HAMLOGの共有機能を使わずにQSOデータを使用しています。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

[解決] dwData=28 QSOデータをオープンが失敗?する
981
2022/01/02(Sun) 20:12:14
JQ3DPB roy
>> 7. WM_COPYDATA で dwData=28、cbData=0、lpData=0 を送信。
> dwData = 28 | 0x400000; これで試してみてください。

ご教授頂いた方法で期待通りの動作になりました。お忙しいところありがとうございました。
# 本年もよろしくお願いいたします
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: [解決] dwData=28 QSOデータをオープンが失敗?する
982
2022/01/03(Mon) 21:17:39
JG1MOU浜田
> >> 7. WM_COPYDATA で dwData=28、cbData=0、lpData=0 を送信。
> > dwData = 28 | 0x400000; これで試してみてください。
>
> ご教授頂いた方法で期待通りの動作になりました。お忙しいところありがとうございました。
> # 本年もよろしくお願いいたします

これでHAMLOGを終了させることなく、QSOデータの読み書きができます。
なお、キーとなるコールサインとコードだけは書き換えない方が無難です。
お楽しみください。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop