2011-12-14 2 views
1

<time.h>にctimeと_ctime_32がありますが、ctimeはCTimeではありません。 CTime 32ビットアナログはありますか?または__time32_tで32bit CTimeと同様のものがあります。私は64ビットバージョンを使って互換性の問題を抱えています。32bitアナログとは何ですか?

OK多分私は__time32_tが供給し、バリアント時間を提供するためにそれを使用している、すべてではCTimeを必要としない:

SYSTEMTIME st; 
    CTime tmp = pCurPar[pot->numSubsection].SysTime; 
     tmp.GetAsSystemTime(st); 
    SystemTimeToVariantTime(&st,&pot->Value.date); 

が、私は

CTime tmp = pCurPar[pot->numSubsection].SysTime; 

が正しく変換されないと思い理由私の.SysTimeは__time32_tで、CTimeは64bit版を使用しています。私はtime32_tとしてそれを提供する必要がある場合

も、私は1つの状況を持っているが、pot->Value.intVal = DayRec[pot->numSubsection].startTime.GetTime();でIv'eは、私が唯一のVisual Studio Expressを持ってWarning 3 warning C4244: '=' : conversion from '__time64_t' to 'INT', possible loss of data

+0

あなたの「トラブル」はなんですか? –

+0

質問に追加されました。 – Cynede

答えて

2

を警告持って、それをテストしていないが、いけないことができますコンパイラは自動的に32ビットタイプを64ビットタイプに変換しますか?それ以外の方法で行うと精度が低下するという警告が表示されますが、32から64ビットへの変換は問題ではありません。それを試して、うまくいかなければ戻ってきてください。

+0

はい、そうです。しかし、私は__time32_t形式で提供する必要がある状況があります。 – Cynede

+0

@nCdy '__time32_t'に明示的なキャストを追加して警告を取り除くことができますが、キャストを行う理由を言うコメントを追加することをお勧めします。 2038年1月18日以降は動作しないとのメモがあります。:) –

+0

2038年1月の何が問題なのですか? ) – Cynede

関連する問題