一括表示

C++ JTDX 投稿者:JA2BQX 太田  《URL》  

こんにちは。教えて下さい。

JTSDK で JTDX のソースのビルドにトライしています。

logqso.h に Th527api の HAMLOG50.H を追記してのビルドはOKです。

logqso.cpp に
Hamlog が起動していない時にQSOデータを THW_append() にて追加したいのですが
最初の HamlogOpen(0, TThLog, *p, 0) でエラーが出ます。
C:\Hamlog\Hamlog.hdb をポインタでセットする必要があると思いますが
この辺りからのサンプルコードをお願い出来ますか?

その後はHamlog が起動している時の事もやりたいですが。
 

2018/02/01(Thu) 10:49:27  [No.837]


Re: C++ JTDX 投稿者:JG1MOU浜田 

> logqso.cpp に
> Hamlog が起動していない時にQSOデータを THW_append() にて追加したいのですが
> 最初の HamlogOpen(0, TThLog, *p, 0) でエラーが出ます。
> C:\Hamlog\Hamlog.hdb をポインタでセットする必要があると思いますが
> この辺りからのサンプルコードをお願い出来ますか?

エラーとは、コンパイルエラーでしょうか? 実行時エラーでしょうか?
こんな感じですけど。C++ではなく、Cですが。

TThLog log; // スコープ外で宣言し、グローバル変数としておく
char *pfName = "C:\\Hamlog\\Hamlog.hdb";
if (HamlogOpen(NULL, &log, pfName, 0)==SUCCESS)
  オッケー!;

2018/02/02(Fri) 20:50:39  [No.838]


Re: C++ JTDX 投稿者:JA2BQX 太田  《URL》  
Re: C++ JTDX (画像サイズ: 428×468 125kB)

浜田さん、お手数をお掛けします。 ありがとうございます。

> エラーとは、コンパイルエラーでしょうか? 実行時エラーでしょうか?

コンパイル時です。

> TThLog log; // スコープ外で宣言し、グローバル変数としておく

今、これを追記しているのですが記載場所が悪い様で赤のアンダーラインが引かれてしまいます。

ソースは下記のリンクの src18.1.0.69.zip で
この中の logqso.h の中に Th527api の中の HAMLOG50.H を追記。
logqso.cpp の中で HamlogOpen() を使おうとしています。

void LogQSO::AppendtoHDB_sub()

{ TThLog log;

char *pfName = "C:\Hamlog\Hamlog.hdb";
if (HamlogOpen(NULL, &log, pfName, 0)==SUCCESS)

{
この様にしてビルドしてみましたが画像の様にワーニングで落ちてしまいました。

https://www.release.jtdx.tech/Windows/Windows%20Source/

ビルドは JTDX や WSJT-X なので JTSDK をインストールしています。
ソースは QtCreator で編集しています。

2018/02/03(Sat) 10:21:08  [No.839]


Re: C++ JTDX 投稿者:JG1MOU浜田 

> > TThLog log; // スコープ外で宣言し、グローバル変数としておく
>
> 今、これを追記しているのですが記載場所が悪い様で赤のアンダーラインが引かれてしまいます。

ハムログでは、ClassのPublic宣言部分で宣言してます。
要するにグローバル変数です。

> char *pfName = "C:\Hamlog\Hamlog.hdb";

円マークは二つ続けて書かないとエスケープコードとみなされますけど。
C言語の基礎中の基礎で、C++も同じはずです。
char *pfName = "C:\\Hamlog\\Hamlog.hdb";

2018/02/03(Sat) 18:09:22  [No.840]


Re: C++ JTDX 投稿者:JA2BQX 太田  《URL》  

浜田さん、お手数をお掛けします。

> > > TThLog log; // スコープ外で宣言し、グローバル変数としてお> ハムログでは、ClassのPublic宣言部分で宣言してます。
> 要するにグローバル変数です。

色々な場所で宣言してみましたが、どうも赤線が出てしまうので。
明日は裾野市で「ハムの祭典」があるので月曜日に再度試します。

> > char *pfName = "C:\Hamlog\Hamlog.hdb";
> 円マークは二つ続けて書かないとエスケープコードとみなされますけど。
> C言語の基礎中の基礎で、C++も同じはずです。

英語モードで無いとビルドがエラーになるので \ マークでは無くて
逆スラッシュになりますが 2ケ並べてもエラーが出たような。

当分、ここで躓いて長引きそうです。

2018/02/03(Sat) 19:56:06  [No.841]