WinAPIを使用してexeファイルからアイコンを抽出しようとしていますが、機能しません。
コードは次のとおりです。
QIcon OSTools::AppsInterface::extractAppIcon(const QString &fileName) const {
wchar_t *convertedName = new wchar_t[fileName.length() + 1];
fileName.toWCharArray(convertedName);
convertedName[fileName.length()] = '\0';
HICON Icon = ExtractIcon(NULL, convertedName, 0);
QPixmap pixmap = QPixmap::fromWinHICON(Icon);
return QIcon(pixmap);
}
コード出力:
QPixmap::fromWinHICON(), failed to GetIconInfo()
問題は、「関数を呼び出すアプリケーションのインスタンスへのハンドル」の代わりにNULLを送信することだと思います。しかし、一般的に、私はQtを使用しており、それは私のアプリで唯一のWinAPI関数です。
どうしたの?WinAPIを使用してアイコンを抽出する正しい方法は何ですか?別の機能の提案があれば、例を挙げてください。WinAPIを使用するのはこれが初めてです。
更新:はい、もっと良い方法があります。このようなことを行うには、 QFileIconProviderクラスを使用できます。