我正在尝试使用一些使用IID_IShellDispatch和CLSID_Shell常量的代码。
我的内容包括:
#include <Windows.h>
#include <WinDef.h>
#include <Shellapi.h>
#include <iostream>
#include <string>
#include <ShlDisp.h>
#include <Shlobj.h>代码:
BSTR source = SysAllocString(input.toStdWString().c_str());
BSTR dest = SysAllocString(outputDirectory.toStdWString().c_str());
HRESULT result;
IShellDispatch *pISD;
Folder *folder = NULL;
VARIANT vDir, vFile, vOpt;
CoInitialize(NULL);
result = CoCreateInstance(CLSID_Shell, NULL, CLSCTX_INPROC_SERVER, IID_IShellDispatch, (void **)&pISD);
...上面的最后一行抛出有关对CLSID_Shell和IID_IShellDispatch的引用未定义的错误
代码是Qt项目的一部分,所以我使用了一个Qt项目文件(用于qmake),并且我已经将-lshell32添加到它的LIBS部分:
LIBS += -lshell32 -loleaut32 -lole32执行的命令为
g++ -Wl,-subsystem,windows -mthreads -o debug\wallch.exe object_script.wallch.Debug -lglu32 -lopengl32 -lgdi32 -luser32 -lmingw32 -lqtmaind -lshell32 -loleaut32 -lole32 -LC:\Qt\Qt5.2.0\5.2.0\mingw48_32\lib -lQt5Widgetsd -lQt5Networkd -lQt5Guid -lQt5Cored在win7上使用MinGW
发布于 2014-01-15 00:40:53
我不得不下载windows SDK并将其添加到我的选项中,如下所示:
LIBS += -L"C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib" -loleaut32 -lshell32 -luuid -lole32https://stackoverflow.com/questions/21078204
复制相似问题