関数 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++ を使用してコンパイルしています。