我无法使用 Code::Blocks 20.03 - 64 位编译器编译下面的 winapi 代码并收到以下错误消息:
#include <tchar.h>
#include <windows.h>
#include <commctrl.h>
#include <shlobj.h>
#include <shlwapi.h>
#include <objidl.h>
LPSHELLFOLDER lpsf;
if(SUCCEEDED(SHGetDesktopFolder(&lpsf))) {
LPITEMIDLIST lpidl = (LPITEMIDLIST) item.lParam;
char m1[MAX_PATH];
if(SHGetPathFromIDList(lpidl, m1)) {
if(lpidl->mkid.cb) {
LPSHELLFOLDER lpsfSub;
if(SUCCEEDED(lpsf->lpVtbl->BindToObject(lpsf, lpidl, NULL, &IID_IShellFolder,(void **)&lpsfSub))) {
FillTreeEx(lpsfSub, lpidl, item.hItem);
lpsfSub->lpVtbl->Release(lpsfSub);
}
}
}
lpsf->lpVtbl->Release(lpsf);
}
错误:未定义对“IID_IShellFolder”的引用
有什么建议吗?
我尝试过默认的 GNU GCC 编译器和 msys64 mingw 编译器。一切都没有改变。
你错过了重要的
#include <ShlGuid.h>
。