|
|
请使用QQ关联注册PLM之家,学习更多关于内容,更多精彩原创视频供你学习!
您需要 登录 才可以下载或查看,没有账号?注册
x
C/C++判断dll是多少位的# [7 k+ K6 G( B, h$ r9 {7 V" r3 X
/ [6 W0 P5 j1 W+ m: R8 W
#include <stdio.h>
0 @& E; c! N) ~ T4 w Z- a1 o#include <windows.h>* N( A Z% R! X" G
7 H# Y; {8 `3 }6 C
`& ~5 F% n( bint __stdcall CrnGetImageFileMachine(LPCSTR lpFileName)! l& ]6 q4 ^4 Q
: f" {" Q% j( K( E
{
5 [) U* y7 y. O. Y, j) |( F$ V5 g6 N* Y, W' R* f; h
IMAGE_DOS_HEADER idh;% P- B9 P' Q$ s/ q9 }4 }% M" [6 F
- B' {- h1 N: b& U d FILE *f = fopen(lpFileName, "rb");
9 ]5 y' P3 S' n" _
) S5 `- |% u& K' H, M* W6 g3 F fread(&idh, sizeof(idh), 1, f);) f% b# C5 Z' t
* p9 n- m7 s( Q3 |$ [5 z, {
- y6 D9 I1 J D1 t8 k IMAGE_FILE_HEADER ifh;" [: p) d( w- T( k5 [
# W, U) R' ^0 U# C/ J' O+ v fseek(f, idh.e_lfanew + 4, SEEK_SET);* X1 m4 Z3 Z9 m& {1 E
" h4 E" u1 B u0 y+ I4 _( K
fread(&ifh, sizeof(ifh), 1, f);
9 C) @4 W$ i a# N
5 Q/ h# I, q' V. J" H2 x& ^
+ n, q+ n; Z7 W: K; N9 m& S fclose(f);* f- z) F+ Y. W3 [
0 ^4 _7 Y4 z0 W6 }1 ^6 y5 Z
3 t& \) r0 H X/ |. k9 o" m) f return ifh.Machine;- n$ k' @+ w& C j4 q6 F
* b; ^" v" _) ]
}
4 w- t1 y7 h6 [: D1 ?9 W# X
u% J3 d+ q1 d+ z3 R! {' A) J- _( Q
+ u: L9 ]! {) | j! \3 D% M( Z( D2 R6 Q7 F4 k+ c- O5 W
// C/C++判断dll是多少位的4 h' C- A4 F9 {) `/ I- R' Q( o* {
6 v* t( r" }. a: v& ~$ P5 c int n = CrnGetImageFileMachine("E:\\temp\\setup.exe");; n- H$ r% f# L- j
$ s( f$ i6 f1 c7 p, G% [
if (n == 0x014C) ShowMessage("x86");5 J+ m- | K( Q
else if (n == 0x0200) ShowMessage("IA64");' Y# V8 k+ Q% [. N. L! i, x7 v8 a
else if (n == 0x8664) ShowMessage("x64");
6 d( b3 N/ p9 z else ShowMessage("抱歉检测不出来");
# M O8 Z3 u% P% f9 @& w' z3 H' r% B- G! e! b
& E! x+ y3 g5 P9 [* X |
|