c++ - 如何使用 cl.exe 静态链接库以使用 SHGetSpecialFolderPath

标签 c++ winapi

我用的是WINAPI的SHGetSpecialFolderPath函数,也是用windows的VisualExpressC++编译器(cl.exe)编译的。但是在链接阶段我得到这个错误:

error LNK2019: unresolved external symbol __imp___SHGetSpecialFolderPathA@16 referenced in function _main

我想我需要链接 Shell32.lib,这是正确的吗?我该如何做才能让我的程序在另一个系统上运行,甚至可能是 XP 7,无需重新编译?

最佳答案

如果您从命令行编译,只需将 shell32.lib 添加到命令中,如下所示:

cl file1.cpp file2.cpp shell32.lib

您只是在使用 Windows 提供的功能。由于这个特殊功能几乎可以追溯到时间的黎明(Windows 95,如果我没记错的话),你不需要做任何特殊的事情就可以在任何当前的任何东西上使用它。

关于c++ - 如何使用 cl.exe 静态链接库以使用 SHGetSpecialFolderPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140426/

相关文章:

c++ - 无法使用 Cairo 在 Gtk drawing_area 上绘画

c++ - vtkSTLReader 只读取执行文件夹中的文件

c++ - 如何使用 C++ win32 API 获取密码到期日期?

c - 用于在 C 中重命名文件的 Win32 API

c++ - 在 Win32(非 MFC)中获取/设置组合框文本

delphi - Delphi中如何调用EnumSystemLocales?

c++ - OpenGL:旋转立方体的错误投影

c++ - 围绕 C++ 传递智能指针

c++ - 以纳秒为单位计算时间的代码

c++ - 如何在Qt/C++中设置Windows文件权限