我正在尝试使用 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类来做这些事情。