ファイルパスの一覧を取得しメモリ確保 – プログラミング – Home

ファイルパスの一覧を取得しメモリ確保
 
通知
すべてクリア

ファイルパスの一覧を取得しメモリ確保


さおり
 さおり
(@さおり)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

初心者ですが、ご教授お願いいたします。
環境はWinXP、VC.net、SDKです。

指定されたフォルダからサブフォルダも含めて、画像関係のファイルを
検索しそのパスをメモリ上でリストアップしたいのですが、メモリの確保を
どうしようかと思っています。

CStringArrayを使おうかと思いましたが、SDKで使おうとしたら
fatal error C1189 WINDOWS.H already included. MFC apps must not #include
<windows.h>
のエラーがでてきました。
このエラーは、MFCじゃないと使えないということでしょうか?それとも使い方がわるい
だけでしょうか?

それと上のように検索してリストアップする場合、SDKでは一般的にどのような
方法をつかうのでしょうか?
ひとつのファイルパスを取得する毎にmallocとかでメモリ確保するのでしょうか?

初歩的だとは思うのですが、おしえてください。


引用解決済
トピックタグ
Eighty
 Eighty
(@Eighty)
ゲスト
結合: 21年前
投稿: 12
 

> このエラーは、MFCじゃないと使えないということでしょうか?それとも使い方がわるい
> だけでしょうか?

CStringArrayはMFCなので、MFCを有効にしないと使えません。

> それと上のように検索してリストアップする場合、SDKでは一般的にどのような
> 方法をつかうのでしょうか?

ファイルの検索なら、FindFirstFile、FindNextFile、FindCloseを
使用します。

> ひとつのファイルパスを取得する毎にmallocとかでメモリ確保するのでしょうか?

ファイルパスを取得する毎にメモリ確保しても良いですし、
ある程度メモリ確保しておいて、メモリが足りなくなったら
再確保する処理でも良いです。
mallocでも良いですが、SDKにGlobalAllocがあります。


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

std::vectorやstd::stringを使ってみるのも良いかも。


返信引用
さおり
 さおり
(@さおり)
ゲスト
結合: 23年前
投稿: 31
Topic starter  

さおりです。

レスありがとうございました。
参考にして、いろいろ試してみようかと思います。

ついでなんですが、GlobalAlloc関係と、HeapAlloc関係の
メモリ管理関数は、なにか使い分けをした方がよいのでしょうか?
新規のプログラムはHeapAlloc系を使ったほうがいいような
ことが、MSDNには書いてありましたが・・・。
HeapAllocを使おうとしたら、pHeap→charへのキャストができないとか
いわれてしまいました。
何が悪いのかよくわかりませんが、GlobalAllocも同じなんですかね・・・。
とりあえず、いろいろやって覚えないと、先に進みません・・・。


返信引用
Bosscat
 Bosscat
(@Bosscat)
ゲスト
結合: 23年前
投稿: 73
 

ファイル長:
固定長で扱いたければ_MAX_PATH (260)を使えば良い。

HeapAlloc:
戻り値はLPVIODじゃない?
mallocと同じ様に扱えるはず。
GetProcessHeap()使ってる?


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました