GetFullPathNameA不返回DLL的路径

时间:2017-05-27 17:37:41

标签: c++ c

如何在Windows PC上获取DLL的完整路径?它只显示一个空白的控制台程序,没有别的

代码看起来像这样

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main()
{
    TCHAR full_path[MAX_PATH];
    LPSTR info = GetFullPathName(TEXT("freddie.dll"), MAX_PATH, full_path, NULL);
    printf("%s",info);
}

1 个答案:

答案 0 :(得分:0)

如评论中所述,您的返回类型是错误的。它返回一个DWORD,表示复制到给定缓冲区的字符串的长度,而不计算终止'\0'字符。 GetFullPathName文档对此非常清楚。还有一个使用该功能的例子。

即使您将退货类型更改为DWORDprintf应如何使用格式说明符DWORD打印%s

所以这是一个作为C代码的工作示例,因为即使您的代码包含C ++,您的代码也是C。

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>

int main()
{
   TCHAR full_path[MAX_PATH];
   DWORD string_len = GetFullPathName (TEXT("freddie.dll"),
                                       MAX_PATH,
                                       full_path,
                                       NULL);
   printf ("Length of full path string: %lu\n"
           "Full path: '%s'",
           (unsigned long) string_len,
           full_path);
}