|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的4 C+ m0 g3 L6 r' G( B, C
2 b( q# u2 B( e; G- [+ `/ K3 b" z/ K#include <stdio.h>
2 |7 c/ t3 i+ G; S3 O, N#include <windows.h>2 D f: ~; k$ R- F% {
% B9 N) [6 R& R$ }- U
/ o0 \7 p9 k( f$ y" f1 ^1 lint __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)/ ~, N* z4 D0 M
% D0 _4 I4 Y' K4 C, O h9 O
{
! n1 \& G! v& U8 y& m0 v
o# [, ~! L7 d IMAGE_DOS_HEADER idh;
( l5 k' S2 Y4 E4 M8 s5 T( J) K+ t# }
FILE *f = fopen(lpFileName, "rb");
; A6 a3 R8 H1 D* k/ y
6 Y$ j, f2 G$ [4 L" i: d4 t8 w2 T fread(&idh, sizeof(idh), 1, f);
8 I) I+ u: M$ v) \- y* n1 d& z- u" [7 F
# @# K) i: h" t% S
IMAGE_FILE_HEADER ifh;
7 I) s" m% r7 L9 K$ O2 {+ L- A' C+ G3 r# R2 Y4 n' j& W5 \
fseek(f, idh.e_lfanew + 4, SEEK_SET);! w& ?: y: {! D. C2 u
9 p- w% \2 c7 p1 v fread(&ifh, sizeof(ifh), 1, f);7 }0 W# h6 z G$ r5 a
* ?& o, v5 V8 b' F+ v
) j: o; H2 U# C5 P! `2 d fclose(f);
# l# A$ ]+ S* a- ?& ]6 {# P( A2 G7 B* l+ Z( u& A1 X
, J9 O6 x8 o# [* N1 ^3 o return ifh.Machine;
% V) {) A: M; b W
E4 z: G% \" O V}: W* x& }$ e: _* ?# ]6 j0 ]" ~ p
- k3 Y+ ^& W7 u; ~& K" j
& M) [/ y5 S7 F2 T" a. m
; W5 k, V( P2 Q, @3 Q3 ?: I4 l; Q4 A# z! m! x8 e
// C/C++判断dll是多少位的
9 o3 q% q" Z- }8 b9 _% j h
& U7 A$ d, T! q. t2 b int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");
3 s. V6 ]# n' F* I* M1 g, Q( ]3 f. w2 H0 U! Z6 ?6 ]
if (n == 0x014C) ShowMessage("x86");
5 p0 Q" k" R( t else if (n == 0x0200) ShowMessage("IA64");+ \$ q2 H1 m W; u( i
else if (n == 0x8664) ShowMessage("x64");6 s( Y9 M, \6 d$ O: f$ Y# W
else ShowMessage("抱歉检测不出来");
6 p" U' E; X& z7 \( L- u5 X/ P' E0 z% u& z8 z
% l! _4 C( a. _& v |
|