|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的) e0 u! ^# t `8 \7 O
! G2 K% a4 T$ [% A$ q5 l7 x6 \9 G4 {
#include <stdio.h>
2 k9 h/ L0 w, Q7 A9 [#include <windows.h>
1 U/ _ x1 j6 X8 f7 K, @& `4 m8 h+ F- N9 u i8 V' E4 Z
1 w& p0 O/ w6 o: Z X( Bint __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)9 G7 q1 {' ~' Y8 U1 G1 S: N) c" `; ?
3 S& z9 j, g$ g
{5 }7 Y+ Q8 ]: {& b6 C; H) `, f( n
% E4 T6 I: Z) ^2 J9 M IMAGE_DOS_HEADER idh;3 W; y5 D. R- Z- _/ p# [( w5 O
$ H G) X5 V$ K6 F, d6 N T FILE *f = fopen(lpFileName, "rb");+ ^ h* G/ i, Y8 E. j
& |, g: }: T# k2 H1 u9 @ fread(&idh, sizeof(idh), 1, f);
1 B( I/ b5 Q* k5 `) `" j; J' N' R0 R2 d0 O7 T2 }
i& V2 e# ^; I3 C, `+ I
IMAGE_FILE_HEADER ifh;
/ L; p2 w' |' v* ]) N j+ O/ `# I
fseek(f, idh.e_lfanew + 4, SEEK_SET);, \" q; u0 C5 ?
* ~; y9 Z) C$ b4 A2 y! A: `* I fread(&ifh, sizeof(ifh), 1, f);3 i2 }" t5 X+ {$ ^
\+ B9 V; ~5 P8 U4 v6 i8 H5 v
, }7 y+ @/ ?9 a fclose(f);
& G0 m7 `/ ]+ E4 }5 }% y
7 \" h$ `5 B/ |! J1 p: m- ?+ E0 G3 f2 j( F
return ifh.Machine;: [" \( K. v0 \6 ]# O' R, Y
! `! {! s" _. r; ]8 o% a- c1 x
}
9 n7 R% ]6 f2 V- z. e/ D. o
& z9 t4 z+ J% d7 i2 \7 y3 f
' p1 j, }7 ^4 C3 ]1 p V, A1 ?
1 q- ]1 j' N" P1 d- Z" G
; V* R, b3 h M4 h1 ?6 e% A" U. ~// C/C++判断dll是多少位的
- _0 y# z# P8 W. u& Q" J. }. o, P( Z: S6 ^
int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");$ Z% |1 v4 g. d) ?* @, y
* Q+ _ b3 W" I
if (n == 0x014C) ShowMessage("x86");% t1 j, ~: H, |. {& e: h1 {
else if (n == 0x0200) ShowMessage("IA64");' ]: y4 A# y4 ]1 {& {
else if (n == 0x8664) ShowMessage("x64");
3 J+ E( B, e2 D- \8 r. H6 {6 | else ShowMessage("抱歉检测不出来");' P7 }# Q& \5 a" l0 K+ { Y; ^
( R$ a0 w% ]2 i1 Q. J
: @" \) ^, C- j8 p D7 R5 p1 n' n |
|