我想编写一个测试脚本或程序,断言给定目录中的所有DLL文件都是特定的构建类型.
我会在SDK的构建过程结束时使用它作为一个健全性检查,以确保64位版本没有以某种方式获得一些32位DLL文件,反之亦然.
有没有一种简单的方法来查看DLL文件并确定其类型?
该解决方案应该适用于xp32和xp64.
信不信由你,我的安装程序太旧了,它没有选择检测64位版本的Windows.
是否有Windows DLL调用或(甚至更好)一个环境变量,可以为Windows XP和Windows Vista提供该信息?
一种可能的解决方
我看到维基百科声称64位版本的Windows XP和Windows Vista都有一个独特的环境变量:%ProgramW6432%所以我猜测在32位Windows上它是空的.
此变量指向Program Files目录,该目录存储Windows和其他所有已安装的程序.英语系统的默认设置是C:\Program Files.在64位版本的Windows(XP,2003,Vista)中,还有%ProgramFiles(x86)%默认值C:\Program Files (x86)和%ProgramW6432%默认值C:\Program Files.在%ProgramFiles%本身取决于请求该环境变量中的进程是否为本身的32位或64位(这是由Windows的上-Windows 64位重定向引起的).
print "$^O\n";
Run Code Online (Sandbox Code Playgroud)
回报
MSWin32
Run Code Online (Sandbox Code Playgroud)
但是,我的笔记本电脑是64位.任何想法Perl系统调用是否检索错误数据(通过它或Windows'错误)或是否按设计?