相关疑难解决方法(0)

如何确定.NET程序集是为x86还是x64构建的?

我有一个任意的.NET程序集列表.

我需要以编程方式检查每个DLL是否是为x86构建的(而不是x64或任何CPU).这可能吗?

.net 64-bit x86 assemblies x86-64

312
推荐指数
8
解决办法
16万
查看次数

如何测试Windows DLL文件以确定它是32位还是64位?

我想编写一个测试脚本或程序,断言给定目录中的所有DLL文件都是特定的构建类型.

我会在SDK的构建过程结束时使用它作为一个健全性检查,以确保64位版本没有以某种方式获得一些32位DLL文件,反之亦然.

有没有一种简单的方法来查看DLL文件并确定其类型?

该解决方案应该适用于xp32和xp64.

windows dll 32bit-64bit

256
推荐指数
5
解决办法
25万
查看次数

如何查找本机DLL文件是否编译为x64或x86?

我想确定本机程序集是否从托管代码应用程序(C#)编译为x64或x86 .

我认为它必须在PE头中的某处,因为OS加载器需要知道这些信息,但我找不到它.当然我更喜欢在托管代码中执行它,但如果有必要,我可以使用本机C++.

.net c# 64-bit winapi x86-64

127
推荐指数
7
解决办法
10万
查看次数

如何解释CorFlags标志?

我如何解释CorFlags标志以及如何使用它来确定.NET程序集是为x86还是x64构建的?

可能是以下情况?

corflags MyAssembly.dll
Run Code Online (Sandbox Code Playgroud)

corflags

52
推荐指数
4
解决办法
3万
查看次数

确定Windows上静态库(LIB)的CPU体系结构

我刚刚使用VS2008在64位Windows机器上构建了libpng.它libpng.lib在\ projects\visualc71\Win32_Lib_Release目录中生成一个文件(配置使用的是"LIB Release").

我曾经dumpbin检查过这个LIB文件:

C:\Temp\libpng-1.4.3>dumpbin projects\visualc71\Win32_LIB_Release\libpng.lib
Microsoft (R) COFF/PE Dumper Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.


Dump of file projects\visualc71\Win32_LIB_Release\libpng.lib

File Type: LIBRARY

  Summary

         8E4 .debug$S
         DF2 .drectve
        2BCD .rdata
       21165 .text

C:\Temp\libpng-1.4.3>
Run Code Online (Sandbox Code Playgroud)

但是它没有显示LIB文件的体系结构.如何查找给定的LIB文件是为32位还是64位架构构建的?

windows 64-bit cpu-architecture static-libraries libpng

40
推荐指数
1
解决办法
1万
查看次数

如何判断.NET程序集是否编译为x86,x64或任何CPU

发现(无法访问源项目).NET程序集DLL是否编译为"x86","x64"或"任何CPU"的最简单方法是什么?

更新:命令行实用程序足以满足我的直接需求,但仅仅是为了完整性,如果有人想告诉我如何以编程方式执行它,那么这也是有意义的,我敢肯定.

.net x86-64 visual-studio

31
推荐指数
2
解决办法
1万
查看次数

Win32 API,用于判断给定的二进制文件(EXE或DLL)是x86,x64还是ia64

我试图找到一种编程方式来判断二进制文件是x86,x64还是ia64.

平台:Windows.语言:c/c ++.

背景:在尝试加载第三方dll之前,我需要找出它的位数.

感谢任何指针.

windows 64-bit winapi 32-bit

6
推荐指数
1
解决办法
5256
查看次数

如何使用 c++ 和 Window.h 解析 EXE 文件并从 IMAGE_DOS_HEADER 结构中获取数据?

我正在尝试解析 Windows 中的 PE 文件并从此结构中获取数据

IMAGE_DOS_HEADER

我写了这段代码,它从 exe 文件中读取字节。

 #include <Windows.h>
    
    int main()
    {
        // open the file for binary reading
        std::ifstream file;
            file.open("D:/SomeProgram.exe", ios_base::binary);
    
        if (!file.is_open())
            return 1;
    
        // get the length of the file
        file.seekg(0, ios::end);
        size_t fileSize = file.tellg();
        file.seekg(0, ios::beg);
    
        // create a vector to hold all the bytes in the file
        std::vector<byte> data(fileSize, 0);
    
        // read the file
        file.read(reinterpret_cast<char*>(&data[0]), fileSize);
Run Code Online (Sandbox Code Playgroud)

我不知道如何获取数据,其中包含e_magic, e_cbip, e_cp.... 和最重要的e_ifanew. 我知道,这个结构 IMAGE_DOS_HEADER 存储在 Windows.h 中,但我不知道如何使用它从任何 exe …

c++ parsing portable-executable

5
推荐指数
1
解决办法
4102
查看次数