トップページ > プログラム > 2015年05月30日 > YkyYlSQN

書き込み順位&時間帯一覧

18 位/171 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000001200003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Win32API質問箱 Build120©2ch.net

書き込みレス一覧

Win32API質問箱 Build120©2ch.net
490 :デフォルトの名無しさん[sage]:2015/05/30(土) 18:55:53.77 ID:YkyYlSQN
>>487
そもそも:strcpyもstrcatもただの文字列操作だぞ

::strcpy_s(m_cFind, MAX_PATH, "D:\\\"Program Files\"");   //D:\\test なら問題なく取得できた
::strcat_s(m_cFind, MAX_PATH, "\\");
::strcat_s(m_cFind, MAX_PATH, "*");

実行した結果の
D:\"Program Files"\*
こんなディレクトリ名ありえんだろ

自作フォルダなら実際のフォルダ名が半角じゃなくて全角になっているとか気づきにくいミスをしている可能性があるから
手入力じゃなくてコピペするようにするとかしてみたらどうだ?
Win32API質問箱 Build120©2ch.net
491 :デフォルトの名無しさん[sage]:2015/05/30(土) 19:06:27.28 ID:YkyYlSQN
>>489
"" が必要になるのはコマンドラインなどのように、空白で文字列の分割が行われてしまう場合だけ。

例えばCreateProcessのlpszImageNameかlpszCommandLinのいずれかでコマンドラインを指定する場合など。

とりあえず試したが(_s付きのほうは試してなくて_s無しのほうで)
空白ありでもちゃんとディレクトリ内のフォルダ名を取得できる。

ちなみにUAC効いてるProgram FilesとProgram Files (x86)で、だ。
Win32API質問箱 Build120©2ch.net
495 :デフォルトの名無しさん[sage]:2015/05/30(土) 19:29:42.57 ID:YkyYlSQN
>>494
ってことは_s付きの関数に問題があったってことでね?

::strcpy_s(m_cFind, MAX_PATH, "D:\\Program Files");
::strcat_s(m_cFind, MAX_PATH, "\\");
::strcat_s(m_cFind, MAX_PATH, "*");

これ実行後の m_cFind はどうなっているんだ?

可能性としては MAX_PATH の定義がおかしくなっているためすべてをコピーしきれないとか。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。