[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 06/08 10:58 / Filesize : 131 KB / Number-of Response : 644
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build65



1 名前:デフォルトの名無しさん mailto:sage [2008/04/22(火) 15:51:24 ]
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
wiki.livedoor.jp/program1/d/FrontPage

Win32API質問箱 Build64
pc11.2ch.net/test/read.cgi/tech/1207099291/

237 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:47:49 ]
>>236
L"%f"

238 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 14:49:19 ]
wsprintfは実数使えないよ

239 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:05:48 ]
せめてMSDNでAPIの説明を読んでから質問しろよ

240 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 15:06:22 ]
StringCchPrintf

241 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 19:45:36 ]
>>237-240
超亀ですが、ありがとうございました。
もっとちゃんと勉強しなおします。。

242 名前:デフォルトの名無しさん mailto:sage [2008/04/26(土) 23:13:13 ]
>>191
ttp://web.archive.org/web/20030625222552/www.osr.com/ntinsider/1996/fastio.htm


243 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:14:39 ]
wsprintf の 'w' って "Windows" のことだよね?
lstrcpy の 'l' はさっぱり分からん

244 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:19:29 ]
同じように95時代のソースみてると _lopen とかつかってて _l ってなによって思う


245 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:38:55 ]
LPSTRと同じようにlong pointerじゃないの?



246 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:39:42 ]
指定の他のソフトにきているメッセージを調べる方法ってありませんか?

247 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:48:22 ]
グローバルフック

248 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 02:58:24 ]
lsprintfでも良かったのにwsprintfなのが謎
kernel32.dllじゃなくてuser32.dllにあるのも謎
しかもWin9x系だと実体はkernel32.dll内にあってuser32!w(v)sprintfは実体にjmpしてるだけだし

249 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:00:35 ]
swprintf と wsprintf があるからややこしいんだよな。
しかもそれでいて wsprintf は %f がないという大きな仕様の差があるし。

250 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 03:07:23 ]
CRT: sprintf, swprintf
Win32: wsprintf

CRT: vsprintf, vswprintf
Win32: wvsprintf

CRT: _snprintf, _snwprintf
Win32: wnsprintf

CRT: _vsnprintf, _vsnwprintf
Win32: wvnsprintf

>>249
それだけじゃないぞ。
wsnprintf じゃなくて wnsprintf とか、もうアホかと。

251 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 04:42:39 ]
>>250
こういうの、1〜2回/年くらいしか趣味でWinアプリをつくらない
ハード屋のおいらにはつらい

252 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 05:07:35 ]
シーケンシャルで読み捨てるんだったら
メモリマップトファイル使っても効率落ちるだけですかね?

253 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 06:03:19 ]
読み捨てるのに明示的にマップする必要なんてあんのか

254 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 08:03:24 ]

ReadDirectoryChangesW() を同期モードでワーカースレッドで使用した場合に,
メインスレッドから制御を変えさせる(中断させる)方法ってありますか?

255 名前:デフォルトの名無しさん [2008/04/27(日) 11:04:31 ]
multimedia timerとhigh-resolution timerの使い分けはどのようにすればいいのでしょうか?



256 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:09:24 ]
気分しだい

257 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:17:27 ]
同期用のディレクトリハンドルを閉じてみるとか

258 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:38:51 ]
>>252
数MBくらいのファイルだが、
シーケンシャルな読み取りしかしないときにメモリマップしたら、
バッファリングありで普通に読み取るよりは速かった覚えがある。

259 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:41:45 ]
バッファリングぐらい自前でしろよ

260 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 11:43:18 ]
>>257
今やってみたけど制御帰らなかった…(´・ω・`)

261 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:36:16 ]
1.clやgccでコンパイル・リンクして出来上がった*.exeファイルは、
 CPU(ペンティアム等)が直接理解できる形式のファイルなのでしょうか?
2.上記の答えが「直接理解できないファイル」の場合。
 CPUが直接理解できるファイルを、clやgccで作成することは出来ますか?
 
質問の意図。
出来るだけ速く動作させたいとか直接的な理由はありません、
知識として知っておきたいのが質問の意図です。

262 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:37:42 ]
ほぼ直接理解できる形式になっている。
ほぼってのは、プログラムをメモリ上にロードする際に
OS が少し手を加えるから。

263 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:44:42 ]
そもそもCPUは命令をデコードしてから実行してるからCPUが直接理解できるなんて有り得ない訳だが

264 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:51:20 ]
デコーダも CPU 内にあるし

265 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 17:57:23 ]
いや、IntelやAMDが配ってる命令リストに記述されてるもんであれば
直接解釈しているとみなして良いと思うが



266 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 18:15:32 ]
>>261
exeやdllは必ずしもCPUネイティブなマシン語とは限らんぞ。
/clrでコンパイルしたらMSILになるからな。

267 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 18:17:04 ]
そうか cl だとそれがあったか

268 名前:デフォルトの名無しさん mailto:sage [2008/04/27(日) 20:11:29 ]
マイクロプログラムってソフトウェアなのかハードウェアなのかよくわからんよな。

269 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 02:47:55 ]
Win32APIで.NETのexeからリソースを取り出すのってどうすればいいの?
FindResourceじゃ取れないし

270 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 03:06:49 ]
アンマネージホスト用のインタフェース・関数がmscoree.dllとかから出ているから、
それを使ってやればいいんじゃないかな?

CLRを読み込んで、アセンブリ (EXE)を読み込んだら、
あとはCOMインタフェースで.NET Frameworkクラスライブラリを使う。
実際できるかどうかわからないけど、100%ネイティブでやれるとしたらこんな感じのはず。

271 名前:デフォルトの名無しさん [2008/04/28(月) 04:50:39 ]
>>270
それネイティブじゃないだろw

272 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 15:36:29 ]
GetGlyphOutline で TrueType font の情報を取ってきているんですが、
OUTLINETEXTMETRIC 構造体の otmsCapEmHeight って何の値が入っているか
知っている方いらっしゃいますか。

MSのヘルプ系には Not supported.ってしか書いてないんですよね

そのわりにはしっかり値入ってるし、どうもほしい値っぽいし・・・

273 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 15:46:02 ]
Caption Embed Height
キャプションに配置した時の高さ


勘で言った。気にしないでくれ

274 名前:デフォルトの名無しさん [2008/04/28(月) 15:46:22 ]
32bitOS上で、32bitアプリは特別なことしないとユーザー2GB、
カーネル2GBですよね。

64bitOS上だと、この2GB&2GBは変わらないのでしょうか?
ちとスレ違いかも知れんけどWin32アプリの仕様に関してなので、
ここで質問してみました。

ググっても資料見つかんなかったです。検索下手ですね。すみません

275 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:03:00 ]
>>274
これがそれっぽい?
msdn2.microsoft.com/en-us/library/aa384219(VS.85).aspx

>On the x64 processor, each 32-bit application receives 4 GB virtual address space in the WOW64 environment,
>if the application has the IMAGE_FILE_LARGE_ADDRESS_AWARE flag set in the image header.
>If this flag is not set, the 32-bit application receives 2 GB virtual address space.



276 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:07:54 ]
64bitOS上で、32bitアプリってこと?
リンカでスイッチ入れない場合は上限2GBでかわらない。
入れた場合は4GBまで使える。

277 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:15:25 ]
>>276
一つ上のレスも見えんのか

278 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:42:04 ]
>>277
お節介な話だが、>>276 氏は>>274 を見てレスを考えている最中に先に
>>275 が入って、ちぐはぐになったんじゃね。

279 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:46:20 ]
ファイルパスが長い場合に途中を...に置き換えてくれる関数みたいに
指定された長さ以下になるまで8.3形式に縮めてくれる関数ないですか。

280 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:52:47 ]
>>278
つまりこういう事か
ケコーンしる>>276>>277

>>279
> 指定された長さ以下になるまで8.3形式に縮めてくれる
何が言いたいのかさっぱり分からん

281 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 16:53:30 ]
まつがえた
ケコーンしる>>275>>276

282 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:00:00 ]
>>279
上のほうはPathCompactPath(Ex)

283 名前:282 mailto:sage [2008/04/28(月) 17:01:52 ]
質問ちゃんと読んでなかった。忘れて

284 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:21:02 ]
なんでお前らそんなに物知りなんだ……?

285 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 17:25:28 ]
・指定された長さ以下になるまで縮める
 PathCompactPath、PathCompactPathEx、DrawTextEx

・8.3形式に縮める
 GetShortPathName

・指定された長さ以下になるまで8.3形式に縮める
 ???



286 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 18:01:35 ]
>>275>>276
ありがとん
例の3GBスイッチ入れたら64bitOS上でユーザー4GBですね。
もうこれで十分だああああ。
64bitアプリを作るのはいつのことになるやら…

287 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:45:30 ]
>>272
ぐぐっただけだが。
ttp://source.winehq.org/source/dlls/gdi/freetype.c?v=wine20011226
には「potm->otmsCapEmHeight = pOS2->sCapHeight」と書いてある。

で、「sCapHeight」を調べたら
ttp://www.microsoft.com/OpenType/OTSpec/os2.htm
This metric specifies the distance between the baseline and the approximate
height of uppercase letters measured in FUnits. This value would normally be specified
by a type designer but in situations where that is not possible, for example when a
legacy font is being converted, the value may be set equal to the top of the unscaled
and unhinted glyph bounding box of the glyph encoded at U+0048 (LATIN CAPITAL
LETTER H). If no glyph is encoded in this position the field should be set to 0.

This metric, if specified, can be used in systems that specify type size by capital height
measured in millimeters. It can also be used as an alignment metric; the top of a drop
capital, for instance, can be aligned to the sCapHeight metric of the first line of text.

288 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 19:57:02 ]
日本語でおk

289 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:08:53 ]
wineのソースかよ

290 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:26:35 ]
>286
例の3GBスイッチって何?

291 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:32:24 ]
>>290
link.exe /LARGEADDRESSAWARE

292 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:34:42 ]
どこらへんが3GBなの?

293 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:36:45 ]
ヒントもらったんだから少しは調べて聞けよ・・

294 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:45:32 ]
boot.iniに仕込むほうの/3GBと紛らわしくてイケナイし、
内実がしめしているものと意味合いが異なりすぎるのに
LARGEADDRESSAWAREを3GBスイッチとか言うのはなぜ?

295 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 20:56:53 ]
↑話を理解してない馬鹿



296 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 21:16:48 ]
>>252
実際にやったことある。
もう必要ないページが物理メモリに残って、また必要になるページが追い出されて、
ぐだぐだな状態になったよ。

ワーキングセットを自分でトリムすりゃいいんだろうけど、
そしたら自分に必要なページまで削られちまうかも。

297 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:34:59 ]
>>294
大いに関係ある。
/LARGEADDRESSAWARE付けたEXEが実際に2GB超のメモリを使うには、
boot.iniで/3GBを入れていないといけない。
(あるいは上に話があったように64ビットWindowsにするか)


298 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 22:41:52 ]
2000だとシステム空間は減るのにユーザのメモリ空間は変わらないんだよな、確か

299 名前:デフォルトの名無しさん mailto:sage [2008/04/28(月) 23:43:14 ]
煽り目的の人はシンデイイヨ

300 名前:272 mailto:sage [2008/04/29(火) 01:22:40 ]
>>287
ありがとう
そのあたりも調べてみます。

301 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 01:54:18 ]
すみません。質問させていただけますでしょうか。
今現在、SetTimerを用いてWM_TIMERを送ってもらっているのですが、
タイマーの精度が低いので、timeGetTime関数を使ってみようと思ったのですが
これがうまくいきません。
具体的なやり方のようなものをご存知の方がいらっしゃいましたら、ご教示くださいませ

302 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 01:59:20 ]
マルチメディアタイマーつかっとけ

303 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:32:29 ]
パフォーマンスカウンタで測りながらループが最強だと思う

304 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:33:56 ]
ちゃんとループにSleep(0);を挟んでおけよ

305 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:44:29 ]
system("cls");
みたいな動作する関数って何ですか?



306 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:47:23 ]
VOID SystemCLS(VOID){

system("cls");

}

307 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:51:09 ]
system("cls");
これを使わなくてもコンソール画面をクリアして
カーソルを一番左上に持っていく事はできますか?

308 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 02:51:36 ]
>>306 それじゃWinAPI関係ねぇだろw

309 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:03:37 ]
CreateProcessに変更すればおk

310 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:05:13 ]
msvcrt.dllがKnownDLLsの一つだからCランタイム関数もWin32APIだろう
まあ"msvcrt.dll"にリンクできるコンパイラ(VC6,DDK,gccなど)を使ってればの話だが

311 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:18:02 ]
>>307
できます。

312 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:19:54 ]
どうやって?

313 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 03:21:34 ]
非同期でwav再生してて、wavの再生位置が1分に来たら
このメッセージを表示

とかどうやったらできる?

314 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:10:40 ]
sndPlaySound("c:\\test.wav", SND_ASYNC);
Sleep(60000);
MessageBox(NULL, "このメッセージを表示", NULL, 0);

315 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:40:57 ]
>>301
マイクロソフトのサンプルはすべてチェックしたか?

>>303
パフォーマンスカウンターは正確とは限らない。
一部のCPUでは、CPUが省電力機能でクロックが低下すると、パフォーマンスカウンターまで遅くなる。
また、複数のコアを持つCPUでは、パフォーマンスカウンターの読み出しには結構なコストがかかる。
(かといってRDTSC命令(だったかな)を直に呼ぶのはダメだ。マルチプロセッサやマルチコアなど、
カウンタが複数ある場合、それらが同一にカウント開始するとは限らないからだ。)



316 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:40:58 ]
GetAsyncKeyStateでキーの押下状態を取得したんですが、
3つ以上のキーを同時に押下するとき、いくつかの組み合わせでは最後に押したキーが押下されてない事になっています。
たとえばASDやSDFなどでは3つとも取得できていますが、
DFGやHJKをD→F→GやH→J→Kの順番で押していくとDFやHJの2つしか押下されてない事になっていて、
同様にD→G→FやH→K→Jの順番で押していくとDGやHKの2つしか押下されていない事になっています。
何か解決のヒントでもあれば教えてください。
ちなみにGetKeyStateやGetKeyboardStateを使っても同様の現象が発生していました。


317 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:44:20 ]
>>307
MSDNライブラリで、
WriteConsole
のページを開いて目次を同期し、そこのあたりのAPIを一通り見れ。

318 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:45:14 ]
>>314
Sleep(60000)が同期だろうが。

茶化した回答しかできんなら黙っとれ。

319 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:47:51 ]
>>316
まずは、あなたの使っているキーボードが、Nキー・ロールオーバーを保証していることを確認せよ。
また、同時押下のキーに制限がないことを確認せよ。

そこいらのキーボードはコスト削減のために、
(シフト系の同時押下前提のキーを除いて)
複数のキーの同時押下を検出できない
または、誤検出するような設計になっている。

320 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:54:25 ]
>>319
あー・・・なるほど。
1000円くらいの安物なので多分対応してないでしょうね・・・。
確認してみます。
ありがとうございます。


321 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 04:59:18 ]
Nキー・ロールオーバーを謳ってるキーボードでも、
PS/2接続ならOKだが、
USB接続だと6キーまでという制限があったりするらしいぞ。

322 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 06:38:42 ]
PS/2接続のRealforce使ってるから、GetKeyboardStateで試してみたら、
本当にいくらでも同時押し下げを認識するのな。
別に無制限の同時押し下げのために使ってるわけじゃないが。

323 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 07:42:55 ]
>>318
sndPlaySound("c:\\test.wav", SND_ASYNC);
CloseHandle(CreateThread(..., ThreadFunc, ...));

DWORD WINAPI ThreadFunc(void* p)
{
 Sleep(60000);
 MessageBox(NULL, "このメッセージを表示", NULL, 0);
 return 0;
}

324 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:13:46 ]
というか>>314のレス内容からこの程度の応用すら思い付かない奴は
プログラマに向いていないので転職をおすすめする

325 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:22:24 ]
sndPlaySound使う時点でプログラマに向いてないと思うがw



326 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:25:16 ]
非同期ってのは、そういう意味じゃないだろ。

327 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:27:09 ]
>>314>>323は、
60秒後に
このメッセージを表示
することだよな。

それを求めていたら、そういう質問になるだろう。

328 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:30:04 ]
>>313の質問は、

> 非同期でwav再生してて、wavの再生位置が1分に来たら
> このメッセージを表示

である。

言葉を補うと、

すでに非同期で再生しているwavが、
その再生位置が1分のところに来たら
このメッセージを表示

となるだろう。

どこまで再生しているのか不明な以上、
Sleepなんかじゃ話にならない。

329 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:31:42 ]
wavの再生速度を変えないなら、再生位置が1分になるのは再生してから1分後だろう

330 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:33:04 ]
音とびなどの特殊状況を考えなければね

331 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:34:08 ]
今時wavの再生ごときで音とびなんてするかよ

332 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:35:46 ]
>>331
こういう奴って、実際にやったことないんだろうなぁ

333 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:39:15 ]
>>332
仮に音とびしても「再生位置1分」と実時間とのずれなんて誤差範囲だろ
お前のPCでは1分のwavを再生するのに2分かかるほど音とびするのか?

334 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:44:03 ]
sndPlaySoundから制御が返った瞬間に、再生開始されてると、いったい誰が保証してくれるんだ?
保証されていないものに頼ることこそ、プログラマに向いてない。

メモリ上にwavを読みこんであったとしても、そいつが物理メモリ上になかったら?

ファイルから直に再生するときに、CD-ROMなどのアクセスに時間のかかるデバイス上にあったら?
しかも、同時に他のアクセスが発生して、当該ファイルの読込みが途切れたら?

>>329
ループ再生していたら、再生開始から1分後とは限らない。
それに、先頭から再生しているのかどうかも、わからんし、
途中で一時停止するかもしれん。

335 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 08:50:28 ]
>>334
お前ムキになりすぎ

そもそもsndPlaySoundは一時停止なんてできないし、
そんな事を言い出したらDirectSoundのコールバックやらを使っても正確に1分かどうかなんて分からんぞ



336 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:04:22 ]
目的によって手段を選べばいい

337 名前:デフォルトの名無しさん mailto:sage [2008/04/29(火) 09:06:28 ]
ノートPC動かすとHDDのヘッドがリトラクトして簡単に音飛びするよ。
それも3秒とかの単位で。
Sleepで時間あわせなんてナンセンス。
定期的に再生位置を読みにいくしかないんじゃね。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<131KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef