gpt4 book ai didi

c++ - GetLongPathName 未声明

转载 作者:行者123 更新时间:2023-11-28 08:29:56 26 4
gpt4 key购买 nike

当我尝试使用函数 GetLongPathName() 编译我的代码时,编译器告诉我该函数未声明。

我已经阅读了位于@http://msdn.microsoft.com/en-us/library/aa364980%28VS.85%29.aspx 的 MSDN 文档.但是,即使我包含了这些头文件,我仍然收到未声明的函数错误。使用该函数时我应该包含哪些头文件?

#include <Windows.h>
#include <WinBase.h>

#define DLLEXPORT extern "C" __declspec(dllexport)

DLLEXPORT char* file_get_long(char* path_original)
{
long length = 0;
TCHAR* buffer = NULL;
if(!path_original)
{
return "-10";
}
length = GetLongPathName(path_original, NULL, 0);
if(length == 0)
{
return "-10";
}
buffer = new TCHAR[length];
length = GetLongPathName(path_original, buffer, length);
if(length == 0)
{
return "-10";
}
return buffer;
}

而且,如果它有所不同,我目前正在 Windows Vista 64 位上使用 Dev-C++ 进行编译。

最佳答案

Dev-C++ 对 Windows API 的支持并不完整。实际上,它甚至还差得远。很可能 GetLongPathName 函数没有在该编译器附带的 winbase.h 中声明(实际上是旧版本的 MinGW)。

您可以使用 Windows SDK 附带的免费编译器来解决这个问题。它与 Visual Studio 附带的编译器相同,但它只是命令行。

您还可以使用 Visual C++ Express Edition ,它是免费的,并提供类似于 DevCPP 的功能。

关于c++ - GetLongPathName 未声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2612462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com