GCC Как объявлять и связывать внешние функции Kernel32.LIB с помощью '@'
Содержимое файла 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......)
Но этот синтаксис не допускается.
Я нашел ссылку на Kernel32.lib в ассемблере
Это решение хорошо, но только для носа, поэтому мой вопрос:
Как использовать это в 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++
С уважением Себастьен ФАЙЕР