📄 z-static.txt
字号:
ApiHooks can be integral part of your release, when you link statically. It means
ApiHooks.dll is not needed.
Supported is MS LINK and Turbo Linker (32bit) (BC++, VC++, MASM, NASM, TASM32).
When AH is linked statically, it is good to call AH function as soon as possible
to initialize AH (ideal is calling GetDefaultRCInfo() from DllMain).
BC++ static linking:
0) Create new (or take old) source for module which uses AH functions. At this stage
the source can be compiled to module which imports from ApiHooks.dll.
1) Define AH_STATIC_LINKING (source: #define AH_STATIC_LINKING | cl: -DAH_STATIC_LINKING)
before #include <ApiHooks.h>.
2) If you want to export functions/data create My.def file. If you want to export
AH function(s) add bApiHooks.def (HDK\LIB directory) to your My.def file and uncomment
(remove ;) AH function name(s) you want to export from your module.
Specify My.def file as TLINK32 deffile. -o option and bApiHooks.def must be specified
always. -o option has IDE equivalent:
Options|Project|Linker|32-bit Linker|Allow import by ordinal
TLINK32 may crash sometimes.
VC++ static linking:
0) Create new (or take old) source for module which uses AH functions. At this stage
the source can be compiled to module which imports from ApiHooks.dll.
1) Define AH_STATIC_LINKING (source: #define AH_STATIC_LINKING | cl: -DAH_STATIC_LINKING)
before #include <ApiHooks.h>.
2) If you want to export functions/data create My.def file. If you want to export
AH function(s) add ApiHooks.def (HDK\LIB directory) to your My.def file and uncomment
(remove ;) AH function name(s) you want to export from your module.
Specify My.def file as LINK option (source: #pragma comment(linker,"/DEF:My.def").
MASM static linking:
1) INCLUDE ApiHooks.pro
2) INCLUDELIB SApiHooks
3) If you want to export functions/data create My.def file. If you want to export
AH function(s) add ApiHooks.def (HDK\LIB directory) to your My.def file and uncomment
(remove ;) AH function name(s) you want to export from your module.
Specify My.def file as LINK option /DEF:My.def.
TASM32 static linking:
1) INCLUDE ApiHooks.prt
2) INCLUDELIB SbApiHooks
3) If you want to export functions/data create My.def file. If you want to export
AH function(s) add bApiHooks.def (HDK\LIB directory) to your My.def file and uncomment
(remove ;) AH function name(s) you want to export from your module.
Specify My.def file as TLINK32 deffile. -o option and bApiHooks.def must be specified
always.
TLINK32 may crash sometimes.
EliASM static linking:
0) Create new (or take old) source for module which uses AH functions. At this stage
the source can be compiled to module which imports from ApiHooks.dll.
1) INCLUDE ApiMacro.mac or %INCLUDE "ApiMacrn.mac"
2) Change iWin32 AHFunction,..... to xWin32 AHFunction,.....
3) Specify SiApiHooks.lib on LINK command line.
3) If you want to export functions/data create My.def file. If you want to export
AH function(s) add ApiHooks.def (HDK\LIB directory) to your My.def file and uncomment
(remove ;) AH function name(s) you want to export from your module.
Specify My.def file as LINK option /DEF:My.def.
When you use MS LINK (VC++, MASM, EliASM..) and want to merge PE section where import
table resides, use LINK switch /OPTidata instead of /MERGE:.idata=MySection!
When you use MS LINK (VC++, MASM, EliASM..) and want to merge PE section named "ApiHooks"
as /MERGE:ApiHooks=MySection, you must ensure MySection is writeable. You can do it
by /SECTION:MySection,EWR switch or late by LINK /EDIT /SECTION:Mysection,ewr MyModule.ext,
Better, you can merge given section to ApiHooks: /MERGE:MySection=ApiHooks.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -