【发布时间】:2016-11-05 04:14:20
【问题描述】:
我想制作一个简单的程序来按扩展名对文件进行分类,但是在尝试编译时出现错误
严重性代码描述项目文件行错误LNK2019未解决 函数“void”中引用的外部符号 __imp__PathFileExistsW@4 __cdecl 分类文件(void)" (?classifyFiles@@YAXXZ)
我的代码是调用 PathFileExists 的地方是这样的:
void classifyFiles() {
for (int i = 0; i < files.max_size(); i++) {
//if each folder doesn't exist, create folder
LPCWSTR folderName = (L"\\" + extensions.at(i)).c_str();
if (!PathFileExistsW(folderName)) {
CreateDirectory(folderName, NULL);
};
LPCWSTR destination = (extensions.at(i) + files.at(i)).c_str();
//move file
MoveFile(files.at(i).c_str(), destination);
}
}
我用谷歌搜索了一下,似乎仅包含 Shlwapi.h 标头还不够,还需要链接库。但我找不到任何关于如何在 Visual Studio 中执行此操作的答案。
注意:我也发现问题是每个菜单和所有内容(这是我第一次使用 Visual Studio),所以请说明在哪里可以找到内容,如果可能的话包括屏幕截图。
参考:https://msdn.microsoft.com/en-us/library/windows/desktop/bb773584(v=vs.85).aspx
【问题讨论】:
-
@meJustAndrew 这令人头疼。我找不到从 Windows 下载文件的位置,所以也许我不必这样做。我必须从 X 网站下载它。我在库目录中创建了一个新行,但我无法设置 dll,因为它没有出现在屏幕上。你知道我应该怎么做才能让这个 shlwapi 库正常工作吗?
-
我解决了这个问题。问题是我使用的是 IF。您不能将 IF'S 与 BOOL 类型一起使用。无需添加任何奇怪的额外配置。
-
pragma 指令是将设置传递给链接器的一种方式。 IDE 手册中解释了如何使用 IDE 指定链接器设置。
标签: c++ windows visual-studio