Kernel.LIB文件内容
_ExitProcess @ 4,_GetStdHandle @ 4,_WriteConsoleA @ 20
为了使用它,我已经测试过声明:
void WINAPI ExitProcess(unsigned int ExitCode);
HANDLE WINAPI GetStdHandle(DWORD nStdHandle);
bool WINAPI WriteConsole@20(HANDLE hConsoleOutput, const void *lpBuffer DWOR......)
但这不起作用。 (未定义参考)。
我用“@n”进行了测试
void WINAPI ExitProcess@4(unsigned int ExitCode);
HANDLE WINAPI GetStdHandle@4(DWORD nStdHandle);
bool WINAPI WriteConsole@20(HANDLE hConsoleOutput, const void *lpBuffer DWOR......)
但不允许使用此语法。
我找到了Linking to Kernel32.lib in assembler
此解决方案很好,但仅限于nasm,我的问题是:
如何在 C ++ C 中使用 G ++ / GCC ?
extern _ExitProcess@4, _GetStdHandle@4, _WriteConsoleA@20
%define ExitProcess _ExitProcess@4
%define GetStdHandle _GetStdHandle@4
%define WriteConsoleA _WriteConsoleA@20
因为C / C ++中不允许使用“ @ 4 @ 20 ”语法
此致 Sebastien FAVIER