ab.com コミュニティ https://www.activebasic.com/forum/ |
|
FileTimeToSystemTimeで https://www.activebasic.com/forum/viewtopic.php?t=4525 |
ページ 1 / 1 |
作成者: | Tako [ 2013年8月07日(水) 14:18 ] |
記事の件名: | FileTimeToSystemTimeで |
AB5.0にて下記コードをデバッグ実行するとエラーが出ます。 コード: スレッド(&H8E4)でアクセス違反がありました(EIP=&H77BF2A16/ESP=&H00000010)。FileTimeToSystemTime()か、sprintf()のどちらかをコメントにするとエラーは出なくなります。 原因は何でしょう?? コード: Dim tLMT As SYSTEMTIME Dim fTimt As FILETIME Dim tLMTp1 As SYSTEMTIME GetLocalTime(tLMT) SystemTimeToFileTime(tLMT , fTimt) FileTimeToSystemTime(fTimt , tLMTp1) Dim Sumtime(50) As Byte sprintf(Sumtime As VoidPtr,"%02s/%02s %02s:%02s:%02s",_ tLMTp1.wMonth,tLMTp1.wDay,tLMTp1.wHour,tLMTp1.wMinute,tLMTp1.wSecond) |
作成者: | たかせ [ 2013年8月07日(水) 16:54 ] |
記事の件名: | sprintfのパラータを修正してください |
編集対象がLong/Word型などの変数のときはsprintfの部分を次のように変更してください。 sprintf(Sumtime As VoidPtr,"%02d/%02d %02d:%02d:%02d",_ tLMTp1.wMonth,tLMTp1.wDay,tLMTp1.wHour,tLMTp1.wMinute,tLMTp1.wSecond) 下記の場合だとポインタ変数が指す文字列の編集と扱われます。 つまり文字列データを編集するときの方法となります。 sprintf(Sumtime As VoidPtr,"%02s/%02s %02s:%02s:%02s",_ tLMTp1.wMonth,tLMTp1.wDay,tLMTp1.wHour,tLMTp1.wMinute,tLMTp1.wSecond) この場合はプログラムでアクセスできないアドレスを参照しようとしたので実行時にエラーになったと思われます。 sprintfの仕様についてはABのヘルプに記載されていませんがパラメータの指定方法はwsprintfとほぼ同じです。 よろしくお願いします。 |
作成者: | Tako [ 2013年8月08日(木) 11:30 ] |
記事の件名: | Re: FileTimeToSystemTimeで |
たかせ様 無事に動作しました。 ありがとうございました。 |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |