在C ++中以编程方式从DLL中获取DLL版本 - 再次

时间:2015-07-22 19:47:33

标签: c++ winapi dll

尝试了MSDN论坛和答案的答案。线程中提到的答案 - How do I programmatically get the version of a DLL or EXE file? - 但我总是将版本号设为“0.0.0.0”

右键单击我的DLL - >属性 - >详细信息 - >文件版本具有正确的值。 加载我的DLL的EXE不是版本信息 - 但不确定这是否重要。

我的代码在下面(作为dll的一部分) - >

NSMutableArray

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:4)

当您要打印ProductVersion字段时,您正在打印FileVersion字段:

printf("Version is %d.%d.%d.%d",
                 HIWORD(fileInfo->dwFileVersionMS),
                 LOWORD(fileInfo->dwFileVersionMS),
                 HIWORD(fileInfo->dwFileVersionLS),
                 LOWORD(fileInfo->dwFileVersionLS));

此外,如果verInfoGetFileVersionInfo()失败,您的代码会泄漏VerQueryValue()数组。