Windows API函数应该不可用

时间:2014-09-29 21:10:05

标签: c++ windows qt winapi

我正在尝试使用Windows的API创建符号链接,但即使我已包含windows.hCreateSymbolicLink函数似乎也不存在。

我正在使用Qt Creator。我可以使用API​​中的其他函数,除了这个函数。

任何人都可以解释原因吗?

我在Windows 8.1上。

修改

我的代码:

#include "windows.h"

bool createSymbolicLink(const int &type, const QString &linkPath, const QString &targetPath) {
    DWORD windows_Type = type;
    wchar_t* windows_LinkPath = new wchar_t[linkPath.length()];
    linkPath.toWCharArray(windows_LinkPath);
    wchar_t* windows_TargetPath = new wchar_t[targetPath.length()];
    targetPath.toWCharArray(windows_TargetPath);

    return CreateSymbolicLinkW(windows_LinkPath, windows_TargetPath, windows_Type) != 0;
}

错误:未在此范围内声明'CreateSymbolicLinkW'

1 个答案:

答案 0 :(得分:2)

CreateSymbolicLink对Vista的最低要求为documented at MSDN

这意味着您需要通过条件定义指定您的目标是Vista及更高版本。您可以在此处找到更多文档:

因此,您可以在包含Windows头文件之前包含这些定义。

#define WINVER 0x0600
#define _WIN32_WINNT 0x0600

如果这没有帮助,那么您的SDK已经过时,需要切换到更新的SDK。