|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的# p; `4 m% ], l" Q' H5 S
! @5 ^$ U( O2 M8 E) z# R* _
#include <stdio.h> T6 E6 A p7 k6 x$ X9 U
#include <windows.h>* }3 u# ~1 {8 S8 B H8 S9 k) i% n; c
_; g. v# a8 U' c5 y/ L* o1 U
/ f3 I. t$ G4 jint __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)
$ f* p6 ?3 e. E" s, Q; _# y, S* H
1 p% m, r' c( `, `3 f{2 L7 r s, a; o* A* R
1 \3 E9 n% r# @
IMAGE_DOS_HEADER idh;
/ q; Q+ m) d, a1 Y- ~' \5 q+ w. E
+ I: t% ~6 E0 R8 h FILE *f = fopen(lpFileName, "rb"); N+ p, s. P7 a: T$ T% R
. f" X) D/ k' T2 K fread(&idh, sizeof(idh), 1, f); w( f/ |' Q* y2 M* c/ C
0 ]4 c. g# f! { t% P% s" Q" n9 _, X/ D
IMAGE_FILE_HEADER ifh;
, U3 f$ \) N3 Y) d' r/ M7 K
8 M( h/ y0 V6 S fseek(f, idh.e_lfanew + 4, SEEK_SET);
! Y- u% N5 Q; h, n! E. }2 |* s& q1 o/ p* E R9 t2 v3 U5 o
fread(&ifh, sizeof(ifh), 1, f);2 i! Z# d& T1 H9 `# E) B8 ~1 k7 x
" W+ {$ p: r; m5 P" t K
/ G( F' f5 Z$ p% | fclose(f);
/ h6 k3 `) M- [1 A! v/ d
2 z2 G! L2 O! J2 @: p8 N' v4 U9 D$ ?
return ifh.Machine;. H9 W: v5 D$ j
7 `5 |5 z$ |- @/ Z$ t: z
}% e: ]7 c- l! V2 n; o J4 E
+ A" g& X. |* q" W% B2 |0 M, X7 t( P5 S7 g$ }# F; \6 s1 N) S
& E% ^% ?8 p, l0 Y
% Y" |0 i! N* ]$ I: |
// C/C++判断dll是多少位的5 @6 k' J. u) O8 c& }5 ?
# N% L/ ?$ B/ M% C2 ~) Q: w) F int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");
9 T3 k9 J' g3 c4 x& r
9 n- K K' f* z if (n == 0x014C) ShowMessage("x86");' F; d6 _3 U$ I: p" h8 G
else if (n == 0x0200) ShowMessage("IA64");
- w$ L0 @9 j) d n else if (n == 0x8664) ShowMessage("x64");
7 m1 z; `+ n5 X, K; Y1 j else ShowMessage("抱歉检测不出来");2 \) v! e3 n, k/ R
g# \2 M5 {( j# n& P- E- l( |3 T$ l+ B. Q1 ?, Y! G$ w
|
|