|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的5 e0 h; s1 ]8 _7 g# w
8 ^) `" D$ I2 |* m: [#include <stdio.h>
3 n5 S: |; [& P8 C% S3 J#include <windows.h>
) i' H( K* o( D9 T8 l8 r. w6 H; Z. ?
1 y' z+ f/ Z8 {! W7 D. n
int __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)
0 L1 {( a: q5 f6 ^; S* ?2 O0 [/ d. S; A
{
% G" X$ u7 X$ g& C* l# s# ?" q: |4 R" C# G& f
IMAGE_DOS_HEADER idh;2 y+ ]' U+ F ]) F0 X0 |
& K3 m+ A2 k* x8 [0 a6 |
FILE *f = fopen(lpFileName, "rb"); w' E( I( Y+ C! K
: I# p D8 B5 R8 y' U( P
fread(&idh, sizeof(idh), 1, f);6 |0 @1 [) D1 X( H3 E, W: Z
7 G+ k7 E5 ?6 b( x( P/ U
5 F. F k/ b9 J! ^
IMAGE_FILE_HEADER ifh;
J5 K5 i+ H2 x: _( H/ p s
9 I: o8 m" t4 P4 E! D fseek(f, idh.e_lfanew + 4, SEEK_SET);
# ]: a( f9 V) e, i# H
/ N* T& [9 Q# ^: V+ r- _ fread(&ifh, sizeof(ifh), 1, f);
$ t2 f: V- K- L g/ m, g$ K3 P& p
! ]3 P. h) \; M" ~+ |& M* M
fclose(f);
9 t+ ^5 w x' [- z% Q4 K
& k% c6 V4 [. l7 r
' y9 I8 H9 R9 R e6 o return ifh.Machine;
. J, N3 v9 t0 G( M
$ e0 }2 Q: v8 x4 p1 `+ y/ ]7 n}
, p5 p, F: {, I, D# x0 t7 U+ ?" Z) M) @0 u! J
- i. m8 v0 H0 p2 S
+ f$ u+ Q. s# c
9 F; s) C0 P. B2 N; ~// C/C++判断dll是多少位的
7 W4 F$ ~/ ?1 B1 h
1 p: ^2 X( B/ n1 {6 y( X. c" g int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");
* U' ?7 D8 g6 J
$ w) h- ]8 }+ |3 M if (n == 0x014C) ShowMessage("x86");
$ C& v) u" p5 w9 @8 D) }$ h else if (n == 0x0200) ShowMessage("IA64");
/ t5 `# d0 X% H- k/ o else if (n == 0x8664) ShowMessage("x64");) ^% _. X- A4 Q+ m
else ShowMessage("抱歉检测不出来");- n' `0 P4 d2 \- b
7 @" S3 o& i2 ~& x) ?7 _
' p: N( n; P, P; f8 x( `: n
|
|