一括表示

64Bit版にて Hamlog50.dll オープンエラー (画像サイズ: 223×116 8kB)

こんにちは。お世話になっております。
JTDXの64Bit版が公開されました。苦労はしましたがどうにか64Bit版のビルド環境を構築出来ました。
ビルドも出来ました。

JTDXのソースを修正して Hamlog にQSOデータを直接転送する事を既にJTDXの32Bit版では完成しています。
このソースを64Bit版でビルドしています。ビルドは成功しますが
jtdx.exe を起動して [ Log QSO ] ウインドウのOKボタンをクリックするとソースの下記の部分のエラーが表示されます。

HINSTANCE hInstDll = LoadLibraryA("Hamlog50.dll");
if (hInstDll == NULL)
{ QMessageBox::critical(0, "Critical", "Can not open Hamlog50.dll");
// error!
} else

{
Hamlog50.dll は JTDXのソース・フォルダの中と jtdx.exe のあるフォルダの中にも置いてあります。
Hamlog50.dll は64Bit版のビルドには使用出来ないのでしょうか?

2020/01/27(Mon) 08:51:10  [No.872]


> Hamlog50.dll は JTDXのソース・フォルダの中と jtdx.exe のあるフォルダの中にも置いてあります。
> Hamlog50.dll は64Bit版のビルドには使用出来ないのでしょうか?

基本的に、Windowsの仕様みたいです。
32ビットでリビルドはできますか?

https://social.msdn.microsoft.com/Forums/ja-JP/e7ed299e-7e94-4fba-ab7a-69ebb65c419a/64bit-29872226591239112398-32bit-12450125031252212391-loadlibrary?forum=vcgeneralja


https://blog.techlab-xe.net/64bit%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%8B%E3%82%8932bit%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%81%B8dll%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3/

2020/01/27(Mon) 21:17:34  [No.873]


浜田さん、こんばんは。ありがとうございます。

> 基本的に、Windowsの仕様みたいです。
> 32ビットでリビルドはできますか?

はい、64Bit のPCで 32ビット版のリビルドは出来てHPに公開しています。
同じソースを64Bit版のビルド環境ではエラーになっています。

ご紹介して頂いたページは後程、見させて頂きます。

Hamlo50.DLL を使わないで直接 Hamlog.hdb に追記するコードをC++で書くのは大変なので。

2020/01/27(Mon) 21:28:19  [No.874]


> > 基本的に、Windowsの仕様みたいです。
> > 32ビットでリビルドはできますか?
>
> はい、64Bit のPCで 32ビット版のリビルドは出来てHPに公開しています。
> 同じソースを64Bit版のビルド環境ではエラーになっています。

考えてみると、32ビットのポインタを渡すべきところを、64ビット
のポインタを渡すことになるので、無理なような気がします。

アドレス空間が根本的に違うので、型キャストしてもだめなような
気がします。

2020/01/30(Thu) 20:27:18  [No.875]


こんにちは。
浜田さん、ありがとうございます。

> 考えてみると、32ビットのポインタを渡すべきところを、64ビット
> のポインタを渡すことになるので、無理なような気がします。
>
> アドレス空間が根本的に違うので、型キャストしてもだめなような
> 気がします。

以前に WSJT-X が ver 1.9になった時にソースのフォルダ構造が変更になり
Hamlog50.h の読み込みでエラーになった時に
Hamlog50.h と Hamlog50.DLL を使用しないソースを書いてあったのを
探し出して来ました。
このソースを今回の64bit版に組み込みビルド出来る様になりました。
お手数をお掛けしました。

2020/01/31(Fri) 06:51:33  [No.876]