|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的- \+ y6 h2 O8 }- r) C1 j7 T
* v! H. \+ m: H$ J6 w5 v
#include <stdio.h>3 V: `7 T! |/ s# r/ f" |
#include <windows.h>
; |+ ?; i& [' X$ j/ {: I9 v; G" g: v' e9 F4 l. p5 R
; Q2 E' v% b% A( O& h2 kint __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)
) E: u& [4 x, _+ P6 f$ N
- R3 F; f. w' ~: h0 L0 J{
2 t- W0 K) J9 b0 Y
! _# b- Q! H+ ~% t( M IMAGE_DOS_HEADER idh;+ z7 R7 ?- F; L1 F3 n
2 p/ e% I. V# |* h5 q0 c, T
FILE *f = fopen(lpFileName, "rb");% L& @2 Z, Q! g
: T& x Q% u M$ O G7 ^+ P
fread(&idh, sizeof(idh), 1, f);
" a8 n) ~; M+ V9 [) l* q3 h6 }. G$ l' x2 n
- u# K& W) a) G% Q9 o0 l0 A
IMAGE_FILE_HEADER ifh;5 B2 c% P" r4 P) F* P
1 Y/ x9 r' R) G& f3 i# h0 c fseek(f, idh.e_lfanew + 4, SEEK_SET);
. k1 s$ \2 c) R I; @% s" B# a& j9 R2 G& @5 i$ j: K; E5 V
fread(&ifh, sizeof(ifh), 1, f);
& d3 B$ P6 _, I/ o' h; T9 D# q. u7 S8 ~/ u7 T
; p$ O! r* ~4 E# K) [* x& Z fclose(f);
% \/ n; Z9 {4 R( A3 B2 O
; }+ \: ^. A0 f" l2 t% s9 i+ g, p' i5 l. M8 c
return ifh.Machine;
* n7 `9 a5 g$ D$ _7 O9 M- E
# ]( D2 h% r8 W4 X3 t}" t) H4 l- z5 m1 [+ l* |- M
$ Q5 |$ ^8 ^" M0 |5 z* m8 T8 X
& S: e9 J& O$ o
7 W, R- D2 h) ~5 W% a! i% H
9 n, W) P# a; f+ F6 b$ ^) Z; ]// C/C++判断dll是多少位的7 `9 Z, G. W i/ y# [! z
9 N( n' C1 h* M3 v& m: z int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");
1 N; Z* T( w e1 N0 K% x& t% s2 K, B; j
if (n == 0x014C) ShowMessage("x86");
* U# G% C: B( U* V# X; C else if (n == 0x0200) ShowMessage("IA64");
; O7 T4 `0 Q5 K& O2 ?$ }' y# \ else if (n == 0x8664) ShowMessage("x64");6 }0 M; Y+ H; G1 f
else ShowMessage("抱歉检测不出来");& J2 I2 T& u* M8 X+ A( u5 _% Y+ [
! L2 e; d. l/ ^9 y$ G. G i A4 b p! Z- C; y0 q
|
|