【C++】template 統合スレ -- Part3
■ このスレッドは過去ログ倉庫に格納されています
0040デフォルトの名無しさん
NGNGアドバイスどうもありがとうございます!
>>39
ああ、ありがとうございます!でも駄目です!
コンパイルエラーは出なくなったんですが、
アプリケーションのくだんの関数実行中にエラーが出てきます。むう。
「モジュール'vcl60.bpl'のアドレス 4013D550でアドレス6F726404に対する読み込み違反がおきました。」
とりあえず.cppの#includeの下に以下を書いたんですが…
自分で書いた怪しいところはコメントアウトしてから実行しました。
class IndexMap {
static std::map<AnsiString, int> index_map;
public:
static int Ext2Index(const AnsiString& ext) {
//SHFILEINFO fileinfo;
//::SHGetFileInfo( ext.c_str(), NULL, &fileinfo,
//sizeof(fileinfo),SHGFI_USEFILEATTRIBUTES | SHGFI_ICON | SHGFI_SMALLICON );
//return fileinfo.iIcon;
};
};
std::map<AnsiString, int> IndexMap::index_map;
あと、基本的にアイコン付きのリストビュー表示を可能な限り早く行うための関数なので、
可能な限りSHGetFileInfo()をの数を減らす、つまり、既出の拡張子は即座にアイコンindex値を
返すのが目的なんです。
なのですでに登録されてる拡張子はすっ飛ばしてindex値を返す処理が必要だと思うんですが、
これってもしかして別関数でファイルを検索してこのIndexMapが呼ばれるたびにSHGetFileInfo()
が実行されちゃうんでしょうか…。
しかし、こういう呼び方するんですね、勉強になりました…。
IndexMap::Ext2Index(Ext);
■ このスレッドは過去ログ倉庫に格納されています