提问人:Sébastien Favier 提问时间:7/24/2016 最后编辑:Michael PetchSébastien Favier 更新时间:8/29/2019 访问量:685
GCC 如何使用“@”声明和链接 extern Kernel32.LIB 函数
GCC How declare and link extern Kernel32.LIB functions with '@'
问:
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......)
但这种语法是不允许的。
这个解决方案很好,但仅适用于 nasm 所以,我的问题是:
如何在 C/C++ 和 G++/GCC 中使用它?
extern _ExitProcess@4, _GetStdHandle@4, _WriteConsoleA@20
%define ExitProcess _ExitProcess@4
%define GetStdHandle _GetStdHandle@4
%define WriteConsoleA _WriteConsoleA@20
因为“@4 @20”在 C/C++ 中是不允许使用的语法
答: 暂无答案
评论
windows.h