Win32API質問箱 Build86

このエントリーをはてなブックマークに追加
970デフォルトの名無しさん
http://set.bbspink.com/test/read.cgi/erog/1230489064/240-241

( ・∀・)つ〃∩ ヘェーヘェーヘェー
971デフォルトの名無しさん:2010/03/27(土) 18:11:13
エロゲらしい微笑ましい不具合です
972デフォルトの名無しさん:2010/03/27(土) 18:13:15
エクスプローラのバグなんだけどな。
973デフォルトの名無しさん:2010/03/27(土) 18:47:59
外人の作ったクソアプリみたいだな
974デフォルトの名無しさん:2010/03/27(土) 22:10:41
そりゃエクスプローラ、Windowsはアメリカ製だからな
975デフォルトの名無しさん:2010/03/27(土) 22:18:58
SetTimerでタイムアウト後、タイマのプロシージャの中でKillTimerしても良いんでしょうか?
プロシージャ外じゃないと駄目なんて事は
976デフォルトの名無しさん:2010/03/27(土) 22:30:20
>>975
別にそれで問題ないと思うけど。
977デフォルトの名無しさん:2010/03/27(土) 22:47:36
安心しました、ありがとうございます。
978デフォルトの名無しさん:2010/03/28(日) 00:17:32
>>970
>上記で誤って作成されたフォルダを「エクスプローラ」上で削除した場合、以前より存在する「My Documents」(2000/XPの場合)
>または「Documents」(Vista/7の場合表示上は「ドキュメント」)が「エクスプローラ」自体の問題により削除される危険があります。

なんじゃこりゃ
ひどすぎないか
979デフォルトの名無しさん:2010/03/28(日) 00:27:04
>>978
(Windowsの)仕様ですキリッ
980デフォルトの名無しさん:2010/03/28(日) 00:32:10
作るときは区別されるのに
アクセスするときは区別されないって
Windowsって馬鹿じゃないの?死ぬの?
981デフォルトの名無しさん:2010/03/28(日) 00:42:02
というか、試しにmkdirコマンドで作ろうとしたが、作れなかったぞ。
982デフォルトの名無しさん:2010/03/28(日) 01:06:56
installshieldのバグじゃないかな
983デフォルトの名無しさん:2010/03/28(日) 03:04:15
色々試してみたのだが、SHFileOperationが空気読みすぎたのが原因っぽい。
最後に空白を付けたファイル名を渡しても、
その空白を取り除いたファイルを対象にしてしまうみたいだ。(x64版Windows7)
ちなみに、「\\?\」プリフィックス付じゃないと、
空白で終了するファイル名はCreateFile等では無効扱いされる。
インストーラが頑張り過ぎたのも、結果的に一因となってしまっているな。
984デフォルトの名無しさん:2010/03/28(日) 03:08:04
>>983
そこまでやってくれるなら、逆に「空白つき」のフォルダを作る方法のほうが知りたくなってくるな。
985983:2010/03/28(日) 03:08:19
あと、ファイルと書いたけどディレクトリも挙動は同じだった。
986デフォルトの名無しさん:2010/03/28(日) 03:42:29
まめFile5(ver6.1.4、64bit)で最後にスペースを付けても削られた

パス解析無効(\\?\を付ける)でないと付けられないって事は
Win32サブシステムの制約なのかしら
POSIXサブシステムなら話は変わるかもしれんが‥‥そこはスレ違いか
987デフォルトの名無しさん:2010/03/28(日) 03:46:59
cygwin だと簡単に作れるね>空白末尾ファイル/フォルダ
988983:2010/03/28(日) 03:51:28
あ〜、詳しく調べると、
CreateDirectory/RemoveDirectoryの仕様がファイルとは微妙に違うな。
末尾に空白があると、それを取り除いた上で処理されるみたいだ。
ディレクトリに関してだけで言えば、SHFileOperationが原因とは言い切れないか。
989983:2010/03/28(日) 03:58:04
無論、プリフィックス付は空白除去無しで処理される。
990デフォルトの名無しさん:2010/03/28(日) 04:33:23
\\?\ をつけると、Win32のパス解析を素通りして、ファイルシステムに直接送るようになるってことか

ttp://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx#namespaces

NTFS 的には空白末尾制限や、MAX_PATH でのパス名制限は無いってことだね
cygwin は常にこの表記でアクセスしてるのかな。
991デフォルトの名無しさん:2010/03/28(日) 07:12:10
LPSって何ですか?
992デフォルトの名無しさん:2010/03/28(日) 08:38:08
いや、cygwinで普通にやるかぎりでは空白つきフォルダは作れなかったぞ。

bash-3.2$ ls
a b c
bash-3.2$ mkdir "a "
mkdir: cannot create directory `a ': File exists
bash-3.2$ mkdir "d "
bash-3.2$ ls -l
total 0
drwxrwxrwx+ 2 user なし 0 Mar 28 08:35 a
drwxrwxrwx+ 2 user なし 0 Mar 28 08:35 b
drwxrwxrwx+ 2 user なし 0 Mar 28 08:35 c
drwxrwxrwx+ 2 user なし 0 Mar 28 08:36 d
bash-3.2$
993デフォルトの名無しさん:2010/03/28(日) 08:50:29
MSDNとかのプログラミング例でよく引数が0とNULLを併用してるのはなぜ?
SampleRoutine(0, NULL, NULL, &buf)
みたいに。0とNULLをあえて使い分ける理由ってなんかあんの?
994デフォルトの名無しさん:2010/03/28(日) 09:09:20
NULLだったらハンドルか何かだなって分かる
ってだけ

TRUEとFALSEもAPIではnon-zero/zeroだから実際に値指定してもいいけど
ぱっと見てBOOLだと分かる方がいいのでやらない
995デフォルトの名無しさん:2010/03/28(日) 09:12:08
型の違いだろ
996デフォルトの名無しさん:2010/03/28(日) 09:15:57
旅に出てくるから新スレ立てとけ
997デフォルトの名無しさん:2010/03/28(日) 09:35:06
>>994
やっぱただそういうことだったんね
998デフォルトの名無しさん:2010/03/28(日) 09:47:09
そういう事か
999デフォルトの名無しさん:2010/03/28(日) 10:19:24
hoge((bool)0,(HANDLE)0)
みたいなことはしてもいいと思う
1000デフォルトの名無しさん:2010/03/28(日) 10:20:28
っつーか1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。