|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的
7 j" \" u1 q, Y6 U# H' X
' L! s ~9 v- E5 [7 q+ D4 X( ^#include <stdio.h>. T0 ]7 v+ b5 G) t; }
#include <windows.h>0 m9 S7 K% |: N* l) O
; S( V, [& g, z+ V0 \! [
6 c5 \( l0 [- G4 @! Y
int __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)2 c3 ]1 a' b6 m/ ?( e# y& I" D9 P$ Z
+ y. }9 H+ U9 l# n6 R. Y
{: N2 O6 O& q0 I# O
# S [; d1 |4 K- A9 n IMAGE_DOS_HEADER idh;
$ K: a0 s7 Y' V' B& J% q
2 Q4 h" S( [$ O# e, C% f FILE *f = fopen(lpFileName, "rb");2 c0 r* a* W) a0 j2 a
# q% a" d) b# o5 Q/ H' F fread(&idh, sizeof(idh), 1, f);
& y1 h; N# L+ m+ R* d) E7 X! l9 t7 D5 e( j+ ?& R& o2 q0 C% C
1 Y3 E v0 w6 T+ j4 l, k IMAGE_FILE_HEADER ifh;/ }( u& k# z8 c, t/ ]
3 T* ^! B: Z/ {2 j- _' o$ _" N
fseek(f, idh.e_lfanew + 4, SEEK_SET);' Z/ v/ \9 \9 l
( x9 A6 |; j5 S7 C$ K! Q fread(&ifh, sizeof(ifh), 1, f);6 x/ K+ ]5 m" p9 [3 x+ Q
, o$ ]7 f( a; U& u5 a- \, J/ i5 I" t) C/ c+ H- k B
fclose(f);
1 @9 T5 u3 l. \: o4 ?7 k6 f Z! Z; ^3 i/ p" o9 k
1 ]9 E/ }+ B. J9 `& N
return ifh.Machine; f: u7 c8 {9 F: W/ ]
" ~' o; p# U6 k* f/ M J, U' `: M
}. D8 l ~- a0 B$ C' {* f c) J# `2 r
2 ]& |3 c( h3 t9 ]" o3 `9 \( m8 S5 _$ J
! t" h9 _& z/ W0 |& ]* o) V$ T: b- c
// C/C++判断dll是多少位的% b) `( L8 l( ]( f3 D5 Y
( D2 O' I9 _( u7 }
int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");* Y0 \, a$ d$ d# P6 {
. Y0 j, ~; F) Q# y4 a
if (n == 0x014C) ShowMessage("x86");
8 p: m3 T1 |. N r6 N5 N/ v else if (n == 0x0200) ShowMessage("IA64");
+ C6 Y& X% o3 e) L5 K% b else if (n == 0x8664) ShowMessage("x64");
& C: p. a: Y/ f4 I/ _) G2 T* e: F else ShowMessage("抱歉检测不出来");" M0 \4 f6 h, ?) v7 z5 U, A
; d' k, N( b# {7 V- m! L
f$ v$ ]$ c/ l9 y: n
|
|