• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Windows+VCでのファイル時刻)

Windows+VCでのファイル時刻を取得する方法と単位について

noname#30727の回答

  • ベストアンサー
noname#30727
noname#30727
回答No.1

FILETIME の単位は 100ns です。

参考URL:
http://www.microsoft.com/JAPAN/developer/library/vcmfc/_mfc_filetime_structure.htm
ykkw_2001
質問者

お礼

>100ns 下のほうの桁は、「用意してあるけど、使ってない」状態なんですね。  将来的に下のほうの桁も利用できるようになったら、スゴイだろうなと思いました。 助かりました。 ありがとうございました。

関連するQ&A

  • ビット演算で00000001と1の頭に0を付ける?

    https://www.grapecity.com/japan/powernews/column/clang/019/page02.htm ビット演算子 表1にCのビット演算子を掲げておきます。ビット演算とは言っても、扱う値はバイト単位などCの一般的な整数のデータ型です。ビット演算子は、それらの値をビット単位で計算します。 ビットシフト演算(<< >>)~2倍と1/2 例えばunsigned char型の1は、2進数では"00000001"という形のビット列(ビットパターン)になります。これを1桁左にずらす(シフトする)と"00000010"となります。ずらしてあふれた左端の0は消え、空いた右端には0が入ります。 "00000001"は10進数の「1」、"00000010"は10進数の「2」です。つまり、ビット列を左に1桁シフトすると値は2倍になるのです。 -----------------------------------------  以上ですが、C言語の、ビット演算の解説の抜粋です。ビット演算はまだ覚えたてですが、"00000001"整数1の頭にわざわざ、0を沢山 つける目的は何なのでしょうか!?  よろしくお願いします。

  • C言語signed long long型の演算

    C言語で以下の演算を行った場合、変数bに格納される値が-1(0xFFFFFFFFFFFFFFFF)になることを期待しておりましたが、参照すると4294967295(0x00000000FFFFFFFF)となってしまいます。 unsigned int a = 1; signed long long b; b = a * (-1); 32bit、64bitのUNIX(Solaris)マシンでそれぞれ確認しましたが、どちらも同じ結果となりました。 変数aの型宣言をsigned intにすると変数bが-1(0xFFFFFFFFFFFFFFFF)になることは確認したのですが、unsigned intだとなぜこのような演算結果となるのかが分かりません。 ※8バイト整数に格納する際に先頭4バイトがなぜ0xFFFFFFFFで補完されないのか? ちなみに変数bの型宣言をsigned long intにすると32bitマシンでは-1となりましたが、64bitマシンでは4294967295となってしまいます。 これは32bitUNIXマシンではsigned long intは4バイト領域であるため-1(0xFFFFFFFF)となり、64bitUNIXマシンでは8バイト領域のため前述と同じ結果になるのだと考えますが、なぜ8バイト整数を使用するとこのような演算が行われるのかが分からないので、演算順序や型変換の優先順位がどのように行われいるのか説明できる方教えてください。

  • msec単位のWait Timerが作れない!

    引数で渡した値だけ待つ関数を作っているのですが、うまくいきません。 OS:WindowsXP Professional (SP1) プラットホーム:Visual C++ Ver7 アプリケーション:コンソールタイプ 失敗例1:Sleep()関数を用いた。 結果:15msec以下の設定が出来なかった。 (1/64secの整数倍でないとズレが生じた) 失敗例2:Clock()関数を使って以下のルーチンを作成 void WaitTimer( clock_t wait ) { register clock_t goal; goal = clock() + wait; while( goal > clock()); } 結果:失敗例1と同じ結果。 どうやら(スレッドか何かはわかりませんが)64Hz周期の何かがあるようです。   何方か10msec単位(±1msec)のWaitTimerを作ったことがある方、是非ノウハウを教えてください!

  • バイト配列を別名で扱う方法

    VisualBasic2008 ExpressEditionにてPLCと通信するアプリケーションを作成しています。 受信したデータは、Publicなバイト配列に格納されています。 Public Dat(63) as byte 'こんな感じです 内容は、ビット単位と32ビット符号付き整数があります。 ビット単位は、And演算子にて判定し32ビット符号付き整数は、BitConverter.ToInt32にて数値化して使用しています。 この方法だとコードが煩雑で可読性が悪い状態です。 質問ですがこのバイト配列変数を別名で参照し扱う事はできますか? たとえばDat(2)の3ビット目を"exp"と別名で宣言しコードの中で扱いたいです。"exp"に変更を行うとバイト配列も変更されて欲しいです。 上司が以前のバージョンにあったような気がすると助言してくれたので調査しています。 私が調べた限りでは、見つける事ができず最も適していると思われるのはクラス化でした。 アドバイスお願い致します。

  • ウインドウズ8でプログラムの・・にVC++とあるが

    ウインドウズ8でプログラムのアンインストールにVC++とあるが VC++の起動の仕方がわからない どなたか教えて下さい

  • VC++2005 ファイル読み込み

    現在VC++2005でプログラムをしています。 そこで質問があるのでよろしくお願いします。 PCに保存してあるテキストファイルをプログラムで読み込み、その中のテキストからいろいろな判断をするというようなプログラムを作りたいと考えています。 そこでファイルのオープンなでは理解できたのですが、ファイルの中のテキストを読み判断するという方法がよくわからず質問しました。 また、テキストファイルの中身は数字と文字列になっています。 下にその例を書きます。 7,000 ディスプレイ 5,000 ゲーム などです。 そこで6,000以上なら高いというような判断を行いラベルに表示するというような形です。 説明が下手かもしれませんがよろしくお願いします。

  • VC++ ファイル読み込み

    VC++についてお教えください。 コンストラクタでテキストファイルの中身をメモリへ読み込みたいのでですが、どのようにしたらよいのか解りません。 お教え願います。 ファイルの中身は4バイトの数値データで、 数十行あります。 ある文字列を検索しながら、その文字列が存在したら、 数ワードを読み込むことを考えています。 Cfileを使用するのか、ファイルのハンドルを設定するのか、 右も左も解らない状態です。 よろしくお願いします。

  • VC++でファイルが開けないんです

    以下のようなプログラムを作っています。 実行内容としては、 MessageBoxでYesNo選択 ↓ Yesなら~~という処理、 Noなら、ファイルの選択画面を立ち上げて、ファイルを選択。ReStartという関数にそのファイル名を渡す ↓ そのあと、現在時間を取得して、filename4というファイルに追加書き込みをする。 という処理です。 ここで、私はfilename4=./time/AAA.timeと指定しているのですが、 Yes処理のあとはうまくfileが開けて書き込めるのですが、No処理のあとはfileが開けないんです。 おそらくは、No処理の中のファイル選択で、VC++のプロジェクトがあるディレクトリと違うディレクトリから選択しているせいだと思うんですが、これを解消する方法はありますでしょうか?? VC++短いんで、もし単純でしたら申し訳ないですが、どうぞよろしくお願いします。 ------------------------------------------- ・・・ if(MessageBox("はじめから?", "message", MB_YESNO)==IDYES){ ~~} else{ CFileDialog fd(TRUE,"","",OFN_FILEMUSTEXIST|OFN_HIDEREADONLY|OFN_LONGNAMES, "位置ファイル (*.POSI)|*.POSI|" "全てのファイル(*.*)|*.*||", NULL); if(fd.DoModal()==IDOK){ posifilename = fd.GetPathName(); } ReStart(posifilename); } stream4 = fopen(filename4,"a"); if(stream4 == NULL ){ MessageBox("Cannot Open the File!!", "error", MB_OK); } strwork4.Format("%ld,",time(NULL)); fprintf(stream4,strwork4); fclose(stream4);

  • 【VC6.0の質問】世界協定時刻と時刻について

    VC6.0の質問です ネット(WinNT4.0)でつながっている他の端末の時刻を取得するにはSYSTEMTIME(世界協定時刻)しか取れないですか? 他の端末のローカル時間(日本の時刻)を取得する方法があれば教えてください。 SYSTEMTIME(世界協定時刻)からローカル時間(日本の時刻))に変換する関数、サンプルプログラム、参考URLがあれば教えてください。

  • Internet Explorer と Internet Explorer(64bit)との違いについて、ご存知の方がおられたら教えてください。

    Windows7 の発売を機会に自宅のPCを更新しました。 自宅で使うPCのOSを(64bit)版にするには未だ時期的に早いかとも思ったのですが、思い切って Windows Vista Home Premium SP1(64bit) を選択しました。(近くWindows 7へ更新予定です。) 私は、OSの(64bit)の意味を演算単位[8bit→16bit→32bit→64bit]の拡張と理解して、(64bit)OSにはプラウザも(64bit)が必要と思いInternet Explorer7(64bit)を選択しました。購入後 IE7をIE8にバージョンアップしました。 いろいろ試す中で、IEの(32bit)と(64bit)は別ものではないかとの疑問が生まれてきました。良く耳にする(64bit)対応とは、OS上だけの話と勝手に誤解していた点です。 動作保証をされていませんが、多くの(32bit)softが、OS(64bit)上で動くことを知りました。動作保証の問題は別にして、softの開発時にOS(64bit)を念頭に置かれるのは当然ですよね。 【OS64+IE64 の不具合】 (1)AdobeFlashPlayer がインストールできない。 ※他のプラウザ(safari,chrome,FireFox)上では、支障なく動いています。 Adobeの説明には、(64bit)の動作保証はしないが、(32bit)として動く内容が記されています。 (2)nProtect Netizen が動かない。 (3)Silverlightも対応していない。 ところが、IEの(32bit)に変更すると、OSは(64bit)であっても(1)(2)(3)は機能するようになりました。 Windows Live mail は、IE(32bit)にLinkしていることも後で知りました。 【OSを64bitにして困ったこと】 (1)AUのLISMO対応でない古い携帯は反応しなくなったこと。 古い機種には64bit対応のDriverが搭載されていないのかも知れません。 LISMO Port は Install できましたが、AU Music Port は Install できませんでした。 このため、画面上には楽曲名が表示されていますが、AU MusicPortで取り込んだ楽曲は再生できませんでした。 W61Pは、別のPC(Net book XP)でカバーしています。 Sonic StageV、iTune、SD-Jukebox は、Install できました。 筆グルメVer.17のupgrade版は、手動でVer.12を Uninstall 削除することで Install できました。 【現行PC】(2003購入)・・・廃棄予定 HP d 330 ST(DC 581 AV) Windows XP Home Edition Ver.2000sp3 CPU Celeron 2.2G/400 Memory 2GB DRAM (500MBx4) 【更新PC】 DELL Inspiron 546 AMD Windows Vista Home Premium sp 1 64 bit版 CPU AMD Phenom x4 クアッドコア 9750 Memory 8GB DDR2-SDRAM (2GBx4)