HAMLOG プログラム開発室


新着表示
タイトル
記事No
投稿日
投稿者

Re: C++ builder でTHW_readしましたが・・・
1082
2024/09/14(Sat) 08:56:58
JK1DVP
どうも、C++ builder 12 では、hamlog50.h で、__BORLANDC__ が定義されてるのですが、
#pragma pack(1)
で指定しないと構造体のアライメントがhamlogのデータに合うようにならないようでした。

> C++ builder でturbo hamlog のデータを読むプログラムを書こうとしています。
> hamlog50.dllを呼び出して、HamlogOpenをしてTHW_readをするところまでできたのですが、下記のように
> TThLog thlog;
> ret=HamlogOpen(NULL,&thlog,fname,0);..
> .
> ret=THW_read(&thlog,count,0);
> のようにcount(>=1) のレコードを読みました。
> if (ret == SUCCESS )
> { ここで、
> thlog.Qso.Calls,thlog.Qso.Date, などは正しく読めているのですが、
>
> thlog.Qso.Freq などのchar ポインタで定義されているものを読もうとするとaccess violation となってしまいます。
>
> また、thlog.Qso.Rmk1Lenなどの変数の意味が分からず困っているところです。どなたかご存じのかた、アドバイスをいただけないでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

C++ builder でTHW_readしましたが・・・
1081
2024/09/13(Fri) 21:04:42
JK1DVP
C++ builder でturbo hamlog のデータを読むプログラムを書こうとしています。
hamlog50.dllを呼び出して、HamlogOpenをしてTHW_readをするところまでできたのですが、下記のように
TThLog thlog;
ret=HamlogOpen(NULL,&thlog,fname,0);..
.
ret=THW_read(&thlog,count,0);
のようにcount(>=1) のレコードを読みました。
if (ret == SUCCESS )
{ ここで、
thlog.Qso.Calls,thlog.Qso.Date, などは正しく読めているのですが、

thlog.Qso.Freq などのchar ポインタで定義されているものを読もうとするとaccess violation となってしまいます。

また、thlog.Qso.Rmk1Lenなどの変数の意味が分からず困っているところです。どなたかご存じのかた、アドバイスをいただけないでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1080
2024/08/08(Thu) 08:42:15
JK1NBV 倉部
浜田様

  Hamlog50.pas のChar もAnsiCharに変更したところ、動きました。
  ありがとうございました。


> 浜田様
>
>  ありがとうございます。
>  起動して、データを取り込む所はできました。
>  しかし、DBから取り出された文字コードが勝手に変換されているらしく、?ばかりが表示される状態です。
>  文字コードの取り扱いを勉強してみます。
>
>
> > Delphi 12 では、Unicodeが標準だと思います。
> > PChar は 暗黙のうちに PWideCharと見なされるはずです。
> > 一方、HAMLOGでは昔ながらのShiftJISだったりします。
> >
> > Hamlog50.pas 内の宣言を書き換える必要があります。
> > PChar はすべて PAnsiCharに書き換えてください。
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1079
2024/08/07(Wed) 17:30:12
JK1NBV 倉部
浜田様

 ありがとうございます。
 起動して、データを取り込む所はできました。
 しかし、DBから取り出された文字コードが勝手に変換されているらしく、?ばかりが表示される状態です。
 文字コードの取り扱いを勉強してみます。


> Delphi 12 では、Unicodeが標準だと思います。
> PChar は 暗黙のうちに PWideCharと見なされるはずです。
> 一方、HAMLOGでは昔ながらのShiftJISだったりします。
>
> Hamlog50.pas 内の宣言を書き換える必要があります。
> PChar はすべて PAnsiCharに書き換えてください。
>
>
> > コンパイルで、以下の2つの警告・エラーが表示され、コンパイルできません。
> >
> > [dcc32 警告] Test1.dpr(49): W1057 文字列の暗黙のキャスト ('AnsiChar' から 'string')
> > [dcc32 エラー] Test1.dpr(53): E2010 'PWideChar' と 'PAnsiString' には互換性がありません
> >
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1078
2024/08/07(Wed) 08:53:07
JG1MOU浜田
Delphi 12 では、Unicodeが標準だと思います。
PChar は 暗黙のうちに PWideCharと見なされるはずです。
一方、HAMLOGでは昔ながらのShiftJISだったりします。

Hamlog50.pas 内の宣言を書き換える必要があります。
PChar はすべて PAnsiCharに書き換えてください。


> コンパイルで、以下の2つの警告・エラーが表示され、コンパイルできません。
>
> [dcc32 警告] Test1.dpr(49): W1057 文字列の暗黙のキャスト ('AnsiChar' から 'string')
> [dcc32 エラー] Test1.dpr(53): E2010 'PWideChar' と 'PAnsiString' には互換性がありません
>
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1077
2024/08/06(Tue) 22:25:50
JK1NBV 倉部
浜田様

コンパイルで、以下の2つの警告・エラーが表示され、コンパイルできません。

[dcc32 警告] Test1.dpr(49): W1057 文字列の暗黙のキャスト ('AnsiChar' から 'string')
[dcc32 エラー] Test1.dpr(53): E2010 'PWideChar' と 'PAnsiString' には互換性がありません


> こんな感じではいかがでしょうか?
>
> var
> retF: Integer;
> dbpath: AnsiString;
> begin
> dbPath := 'C:\HAMLOG\HAMLOG.hdb';
> retF := HamlogOpen(nil, tth, PAnsiChar(dbPath), 0);
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1076
2024/08/06(Tue) 20:00:29
JG1MOU浜田
こんな感じではいかがでしょうか?

var
retF: Integer;
dbpath: AnsiString;
begin
dbPath := 'C:\HAMLOG\HAMLOG.hdb';
retF := HamlogOpen(nil, tth, PAnsiChar(dbPath), 0);
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1075
2024/08/06(Tue) 15:10:42
JK1NBV 倉部
浜田様

コメントありがとうございます。

いただいた内容で、変数宣言を変更すると、
E2010 'PWideChar'と'PAnsiChar'には互換性がありません。
のエラーが、HAMLOGOPENの行で出力されるようになりました。

> 訂正します。
>
> dbpath: string;
> Pdbpath: PChar;
>
> ではなくて、
>
> dbpath: AnsiString;
> Pdbpath: PAnsiChar;
>
> としてみたらいかがでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1074
2024/08/06(Tue) 09:12:45
JG1MOU浜田
訂正します。

dbpath: string;
Pdbpath: PChar;

ではなくて、

dbpath: AnsiString;
Pdbpath: PAnsiChar;

としてみたらいかがでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop
タイトル
記事No
投稿日
投稿者

Re: HAMLOGOPENで ファイルがオープンできませんエラー
1073
2024/08/06(Tue) 07:19:30
JG1MOU浜田
dbpath: string;

ではなくて、

dbpath: AnsiString;

ではいかがでしょうか?
このスレッドは管理者によってロックされていますので、返信並びに編集は出来ません!
pagetop