GetFullPathNameA 不返回 DLL 的路径



如何在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);
}

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

即使您将返回类型更改为 DWORD .printf应该如何使用格式说明符打印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: %lun"
           "Full path: '%s'",
           (unsigned long) string_len,
           full_path);
}

最新更新