Win32API質問箱 Build36

このエントリーをはてなブックマークに追加
952デフォルトの名無しさん:2005/11/13(日) 12:31:00
Windows付属のペイントの減色処理がしょぼすぎなだけなので普通はgifが使える。
953デフォルトの名無しさん:2005/11/13(日) 13:26:13
>>951
スルーされたかったのに妄想厨に絡まれたんだよヽ(`Д´)ノ
どうせ2chの書き込みは全部漏れの自作自演だよヽ(`Д´)ノ
954デフォルトの名無しさん:2005/11/13(日) 13:28:13
>>1-1000
自演乙
955デフォルトの名無しさん:2005/11/13(日) 14:28:16
オマエモカ!
956デフォルトの名無しさん:2005/11/13(日) 14:34:01
オマエモダ!                          ( ゚д゚ )
957デフォルトの名無しさん:2005/11/13(日) 16:06:30
CでWin32APIを使用しWindowアプリケーションを作りたいのですが、
C++の知識は必要でしょうか?
958デフォルトの名無しさん:2005/11/13(日) 16:07:07
Cで作るのにC++の知識がいるかボケェ
959デフォルトの名無しさん:2005/11/13(日) 16:21:08
でもCOMまわりはC++できないと辛いお
960957:2005/11/13(日) 16:22:28
どこもC++については意見が真っ二つですよね・・・
961デフォルトの名無しさん:2005/11/13(日) 16:37:36
COM使わにゃえぇだけ
962デフォルトの名無しさん:2005/11/13(日) 16:37:39
作りたいアプリによると思う。
963デフォルトの名無しさん:2005/11/13(日) 16:47:30
なんでも全部自分でやるならCだけで充分
でも人が作ったものを利用しようと思った時にC++知らないと不便だろ
964957:2005/11/13(日) 16:49:48
なるほど・・・
日曜プログラマーの延長線進もうとする自分にとっては
微妙なようで・・・
965デフォルトの名無しさん:2005/11/13(日) 16:51:49
驚いた、人の作ったC関数ライブラリ使うのにC++知らないと不便なのか
966デフォルトの名無しさん:2005/11/13(日) 16:51:56
まぁ、先にC++覚えたほうが後々楽できるとは思うがそこは人それぞれだな。
俺はもう素のCなんか書きたかねーが。
967デフォルトの名無しさん:2005/11/13(日) 16:56:00
そこがプロとアマの違いw
968デフォルトの名無しさん:2005/11/13(日) 17:20:09
わたしゃ日曜プログラマですが、C++覚えた方が色々と楽な気がする。
Cで書いてた時よりも遙かに楽になった。
969デフォルトの名無しさん:2005/11/13(日) 17:49:55
C++思考ができれば、な
970デフォルトの名無しさん:2005/11/13(日) 17:52:05
なぜかGetClipboardDataが失敗するのですが。
GetLastError()は、ERROR_CLIPBOARD_NOT_OPENです。

確かにちゃんとOpneClipboardが成功しているのですが。

EmptyClipboard()やSetClipboardData()はできるようです。
971デフォルトの名無しさん:2005/11/13(日) 19:17:55
現在時刻をミリ秒かマイクロ秒単位で取得する関数はありますか。
972957:2005/11/13(日) 19:19:48
進んでみて駄目/必要そうなら++を学習してみます。
本当にありがとうございましたm(_ _)m
973デフォルトの名無しさん:2005/11/13(日) 19:37:33
timeGetTime, GetTickCount(ms単位)
QueryPerformanceCounter (QueryPerformanceFrequency単位)
GetSystemTimeAsFileTime(0.1µsec単位)
ただし、実際に器の単位で時刻が進むとは限らないはず。
974デフォルトの名無しさん:2005/11/13(日) 19:45:12
つーか、そもそもPCのRTCにそこまでの精度がないからやるだけ無駄。
975デフォルトの名無しさん:2005/11/13(日) 19:47:03
ネットワーク共有のフォルダをFindFirstFile、FindNextFileで列挙しましたが、
2000個のフォルダを列挙するのに8秒ほどかかります。
ローカルでやると、100msくらいなのですが、なぜこれほど
ネットワーク越しは時間が掛かるのでしょうか?
976デフォルトの名無しさん:2005/11/13(日) 19:48:30
離れてるから
977デフォルトの名無しさん:2005/11/13(日) 19:58:16
>>973
へぇ、timeGetTimeって「現在時刻」だったんだ
978デフォルトの名無しさん:2005/11/13(日) 20:02:41
最初に別の方法で時刻とタイムカウンタの値を取得しておいて、
あとはタイムカウンタの差分を取得しておいた時刻に足せば、
現在時刻になるわけだが。
979デフォルトの名無しさん:2005/11/13(日) 20:14:54
>>978
それは別の方法の精度が悪ければいくらタイムカウンタの精度が良くても意味がないだろ。
980デフォルトの名無しさん:2005/11/13(日) 20:18:05
>>978
「現在時刻をミリ秒かマイクロ秒単位で取得する関数」なんですか?w

論点違ってんだよ
981デフォルトの名無しさん:2005/11/13(日) 20:22:03
現在時刻が1970/1/1からの秒数であるか、1601/1/1からの
0.1µsecであるか、システム起動時からのmsであるかに
そんなに大きな違いはない。
982デフォルトの名無しさん:2005/11/13(日) 20:35:20
結論としては1ms単位での取得は無理。
中身どうなってんのか俺は知らんけど、
そもそもOS側でのタイマの更新がそう頻繁に行われて無いと思われ。
今、タイマ関数を読んでその値が一体何時に取得した値なのか1ms単位ではわからないんではないか?と予想。
経験だとだいたい20ms単位ぐらいなら文句が無い程度には動く。
983デフォルトの名無しさん:2005/11/13(日) 20:38:50
マルチメディアタイマーを使えばもっと細かい時間が
取得できるとかどっか書いてあったけど?
984デフォルトの名無しさん:2005/11/13(日) 20:44:11
理論上はな
実際と理論は違うのだよ
985デフォルトの名無しさん:2005/11/13(日) 20:57:05
>>983
そもそもWindows自体が全てがメッセージで動いてるわけで、
タイマのときだけメッセージ無視して早く動くとも考え難いじゃん。
Windowsってさ、だいたいが、その状態があってそれを取得するのは早いけど
ひとたびハードにアクセスするってーとかなり時間がかかると思うんだがどうだろうか?
だからタイマ取得関数ですぐレスポンスが帰ってくるのはそもそも俺が関数を呼び出す
もっと前に取得しておいたものだと俺は考えるわけだがどうだろうか?
だから時間は関数を呼び出す前からすでにずれていると思うわけよ。
はじめに設定する精度ってのはWindowsがとってくるように
努力しようとする周期(実際にとれているかどうかは問題では無い:まあ、期待値w)であって、
メッセージで動くWindowsにそもそもそんな周期での仕事は無理なんじゃねぇの?
ってのが俺の予想。
986デフォルトの名無しさん:2005/11/13(日) 20:57:46
窓上でそんな時間取得できるのか?
普段のもっさり感考えるとかなりばらつく気がす
987デフォルトの名無しさん:2005/11/13(日) 21:00:24
そもそもメッセージはみなのんびりゲットしてる
988デフォルトの名無しさん:2005/11/13(日) 21:20:10
マルチメディアタイマーは割り込みじゃないのかなー
989デフォルトの名無しさん:2005/11/13(日) 21:21:28
http://www.emit.jp/prog/prog_t1.html
timeBeginPeriodを使えばGetTickCountの精度まで良くなるそうだ。
990デフォルトの名無しさん:2005/11/13(日) 21:30:26
991デフォルトの名無しさん:2005/11/13(日) 21:31:03
8254叩いて今の値をとってくるのに、そんなに時間は掛からないとおもうが。
992デフォルトの名無しさん:2005/11/13(日) 22:01:21
>>988
割り込む処理もメッセージだったら?
993デフォルトの名無しさん:2005/11/13(日) 22:03:59
>>989
>記事の行数が増えてしまうので NT(2000) での結果は割愛しましたが、精度は 10mSec でした。(^_^;
これはなぜか?
って考えないのかな?。
つまり、NT系に当たるXPもこんなもんじゃねーの?
994デフォルトの名無しさん:2005/11/13(日) 23:22:55
>>992
もしメッセージだったら精度は悪くなるだろうね。
実際はメッセージじゃないけど。
995デフォルトの名無しさん:2005/11/13(日) 23:23:33
回答者は憶測だけで書き込むのはやめろ。
マルチメディアタイマは最優先度のスレッドが生成されそのスレッド内でループする仕様。
Win32APIに割り込みなど存在しない。
996デフォルトの名無しさん:2005/11/13(日) 23:37:46
>>995
スレッドならメッセージでやりとりするしかねーじゃん。
997デフォルトの名無しさん:2005/11/13(日) 23:44:19
この時間帯、書込みのレベルが低いな。>>996みたいな天然の初心者が多い。
口調が初心者風でないだけにムカつく。
998デフォルトの名無しさん:2005/11/13(日) 23:45:38
>>993
シングルプロセッサのNT系のクロック割り込みが10ms単位らしいから、
タイマーの精度もそれに依存してるって話では。

タイマーのOS内部での動作としては、クロック割り込みがくるたびに、
システム内のカウンターに割り込み間隔分の値を加算していく。
timeGetTime()とかGetTickCount()とかは基本的にこのカウンタを返してるだけだから、
精度はクロック割り込みの設定に依存する。
(基本的にはどのOSでもこのへんの構造は大差ない)

QueryPerformanceCounter()は、クロック割り込みとは別のハードウェアを使ってるから
(使える環境なら)より精度の高いカウンタとして使える。

マルチメディアタイマーは割り込みじゃなくてコールバック。
詳しくは知らないが、>>995みたいなビジーループ回してるんじゃないかな?
999デフォルトの名無しさん:2005/11/13(日) 23:46:03
>>997
で、あなたの反論は?
1000デフォルトの名無しさん:2005/11/13(日) 23:47:20
           ∩_
           〈〈〈 ヽ
          〈⊃  }
   ∩___∩  |   |
   | ノ      ヽ !   !
  /  ●   ● |  /
  |    ( _●_)  ミ/ <こいつら最高にアホ
 彡、   |∪|  /
/ __  ヽノ /
(___ ̄\ /
    (_ノノノ│
       ∪
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。