C#判斷DLL文件是32位還是64位的示例代碼
c#判斷dll文件是32位還是64位,實(shí)例代碼如下所示:
using System;
using System.IO;
namespace GetDllVersionDemo
{
/// <summary>
/// https://www.cnblogs.com/LifeDecidesHappiness/p/15711169.html
/// C#判斷DLL文件是32位還是64位
/// LDH @ 2021-12-20
/// </summary>
internal class Program
{
private static void Main()
{
Console.Title = "C#判斷DLL文件是32位還是64位";
GetDll32Or64();
Console.ReadKey();
}
private static void GetDll32Or64()
{
var dllPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"Dll\IBM.Data.Informix.dll");
var result = GetPeArchitecture(dllPath);
//523 64位 267 32位
if (result == 523)
Console.WriteLine(dllPath + "是【64】位的dll");
else if (result == 267)
Console.WriteLine(dllPath + "是【32】位的dll");
else
Console.WriteLine("執(zhí)行錯(cuò)誤!");
}
/// <summary>
/// 獲取dll文件是32位還是64位
/// 523 64位 267 32位
/// </summary>
/// <param name="dllFilePath">dll文件路徑</param>
/// <returns></returns>
public static ushort GetPeArchitecture(string dllFilePath)
{
ushort architecture = 0;
try
{
using (var fStream = new FileStream(dllFilePath, FileMode.Open, FileAccess.Read))
{
using (var bReader = new BinaryReader(fStream))
{
if (bReader.ReadUInt16() == 23117) //check the MZ signature
{
fStream.Seek(0x3A, SeekOrigin.Current); //seek to e_lfanew.
fStream.Seek(bReader.ReadUInt32(), SeekOrigin.Begin); //seek to the start of the NT header.
if (bReader.ReadUInt32() == 17744) //check the PE\0\0 signature.
{
fStream.Seek(20, SeekOrigin.Current); //seek past the file header,
architecture = bReader.ReadUInt16(); //read the magic number of the optional header.
}
}
}
}
}
catch
{
// ignored
}
// if architecture returns 0, there has been an error.
return architecture;
}
}
}

到此這篇關(guān)于C#判斷DLL文件是32位還是64位的文章就介紹到這了,更多相關(guān)C#判斷DLL文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用WPF實(shí)現(xiàn)加載動(dòng)畫(huà)效果
在應(yīng)用程序加載大量數(shù)據(jù)或執(zhí)行復(fù)雜操作時(shí),為用戶提供一個(gè)良好的加載體驗(yàn)變得至關(guān)重要,加載動(dòng)畫(huà)是其中一個(gè)有效的方式,下面我們就來(lái)看看如何使用WPF實(shí)現(xiàn)簡(jiǎn)單的加載動(dòng)畫(huà)效果吧2024-03-03
基于C#實(shí)現(xiàn)圖片滑動(dòng)驗(yàn)證碼的示例代碼
這篇文章主要為大家介紹了如何利用C#語(yǔ)言制作一個(gè)圖片滑動(dòng)驗(yàn)證碼,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-04-04
C#實(shí)現(xiàn)添加/替換/提取或刪除Excel中的圖片
在Excel中插入與數(shù)據(jù)相關(guān)的圖片,能將關(guān)鍵數(shù)據(jù)或信息以更直觀的方式呈現(xiàn)出來(lái),使文檔更加美觀,下面我們來(lái)看看如何在C#中實(shí)現(xiàn)添加/替換/提取或刪除Excel中的圖片吧2025-01-01
深入解析C#設(shè)計(jì)模式編程中對(duì)建造者模式的運(yùn)用
這篇文章主要介紹了C#設(shè)計(jì)模式編程中對(duì)建造者模式的運(yùn)用,文中還介紹了在.NET框架下建造者模式編寫(xiě)思路的實(shí)現(xiàn),需要的朋友可以參考下2016-02-02
C#實(shí)現(xiàn)帶引導(dǎo)窗體的窗體設(shè)計(jì)操作流程
很多時(shí)候,我們的窗體設(shè)計(jì)需要一個(gè)引導(dǎo)窗體,當(dāng)打開(kāi)一個(gè)項(xiàng)目的窗體時(shí),默認(rèn)的是先打開(kāi)一個(gè)歡迎或介紹項(xiàng)目信息的引導(dǎo)窗體,幾秒鐘后再打開(kāi)項(xiàng)目的主窗體,本文給大家介紹了C#實(shí)現(xiàn)帶引導(dǎo)窗體的窗體設(shè)計(jì)操作流程,感興趣的朋友可以參考下2024-04-04
C#實(shí)現(xiàn)Word轉(zhuǎn)換RTF的示例代碼
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)Word轉(zhuǎn)換RTF,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12
深入理解C#索引器(一種支持參數(shù)的屬性)與屬性的對(duì)比
本篇文章是對(duì)C#索引器(一種支持參數(shù)的屬性)與屬性的對(duì)比進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
利用WPF窗口程序設(shè)計(jì)簡(jiǎn)單計(jì)算器
這篇文章主要為大家詳細(xì)介紹了利用WPF窗口程序設(shè)計(jì)簡(jiǎn)單計(jì)算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
C# 利用AForge實(shí)現(xiàn)攝像頭信息采集
這篇文章主要介紹了C# 如何利用AForge實(shí)現(xiàn)攝像頭信息采集,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07

