|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的+ o! i3 S% }! W8 j1 U% X$ O' Z
3 U4 w- F) }1 r% s2 Q" r. P6 Z* m! ~#include <stdio.h>
; t3 \/ A1 |! H( e#include <windows.h>5 V( A1 m E6 x, p3 [5 {8 C- A4 y
' Y+ h+ R( f" k% ]# @' s$ {- t! A, b6 E8 U; R! n! I
int __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)
3 L. b3 s2 @0 \ o* j5 i* F+ r! l& _1 t7 j y+ h
{/ H6 @$ I$ o0 Q8 ~; n
2 D! P& M; }3 r" N& m# B# m IMAGE_DOS_HEADER idh;
( U, L `4 [4 u5 w
5 ~( }3 O, _* M3 f FILE *f = fopen(lpFileName, "rb");
& |3 p% l1 v# z# m
% r7 G0 O+ r) A* O fread(&idh, sizeof(idh), 1, f);" b: R+ X0 K, }0 J7 w1 C" X
/ h3 G/ `5 u/ g6 R z. J" r7 o6 d8 ^9 \* j/ U# F5 ?
IMAGE_FILE_HEADER ifh;
/ l# E& e0 D- u) ~ e& O% V' l' u; L2 C# }+ \$ p# |
fseek(f, idh.e_lfanew + 4, SEEK_SET);. o, Z x0 e0 ?% o1 z' E" t
" y$ o4 T* E/ K! e fread(&ifh, sizeof(ifh), 1, f);0 p8 A( l0 B' n! H* a
+ P* J6 T3 p! ], @, |9 [: l' k
" Z3 j o4 Z P( ?4 ` fclose(f);
0 |4 q1 u$ ]3 r9 {5 W! @7 T: u# r) _* M1 y/ j
7 l1 J2 H u- q
return ifh.Machine;
5 ?0 p3 \2 E% D ^9 g
! F0 o% h$ M& J: z5 @- ^. c$ S}
! e# \9 @9 p/ E7 x9 l1 g3 f/ c3 W
5 G/ h" W: d$ r' E9 K7 J G0 S7 d. k7 Q0 Y5 I7 T! i% {
# l6 R$ p6 s$ V' g$ J) r// C/C++判断dll是多少位的, R4 a' Q0 p: `& U3 _4 q4 D* `9 d# B
; W; v8 g3 N7 l$ {
int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");
1 n8 r) j8 g5 N8 C5 [- z& ^0 o0 u
* y( R1 X9 v( t if (n == 0x014C) ShowMessage("x86");
# |& V9 f* x) ~* A u8 _" F else if (n == 0x0200) ShowMessage("IA64");
; J: H7 I8 j* K5 [! } else if (n == 0x8664) ShowMessage("x64");! g& [, u0 b- R' D1 K
else ShowMessage("抱歉检测不出来");5 K6 H1 |' J# l a. c8 Q
( Z7 u0 U. ], j: Y, |. n
% f2 `3 Q+ |2 q4 m) y& I
|
|