Как перевести этот код с C++?
mov ebx, [ebp - 8]
lea ebx, [ebp - 8]lea edx, [ebx + ecx + 4] ; add FirstThunk RVA to base. Offset &function is 4
lea edx, [edx + 20] ;size of IMAGE_THUNK_DATA
можно ли ее как-то улучшить
mov byte [sockaddr_in + 0], AF_INET ; sin_family
mov byte [sockaddr_in + 2], 0 ; sin_port[0] это старший байт sin_port
mov byte [sockaddr_in + 3], 80 ; sin_port[1] а это младшийума не приложу, почему размер void _stdcall foo(short a, short b); параметров равен 8
Как выяснилось, стек растет не только на 4 байта, а на 2.
sub $imm, %esp) не означает, что это следует делать. См: The stack will always be maintained 16-byte aligned, except within
the prolog (for example, after the return address is pushed), and except where
indicated in Function Types for a certain class of frame functions Для венды на x86 я такого описания на том же сайте не нашёл, но точно выравнивание должно быть не меньше 4. В общем выравниваются в памяти поля по границе кратной своему же размеру. То есть 1-байтовые поля не выравниваются, 2-байтовые — выравниваются на чётные позиции, 4-байтовые — на позиции кратные четырём и т.д.
.a is an archive of code: compiled but not linked. You would link statically with it during your program's final link step.
.lib can be either the same as .a, or a magical so-called "import library": a thin placeholder which causes you to require a .dll at runtime.
-l<libname>.gcc -c file.c `pkg-config --cflags <libname>`
gcc file.o -o file `pkg-config --libs <libname>` Подскажите пожалуйста, почему так
a b c символы, которые нужны библиотеке b будут искаться только в библиотеке c, но не в a. Если между библиотеками нет циклических зависимостей (т.е. нет такого, что a определяет символ, нужный b, а b определяет символ, нужный a), то их можно упорядочить так, что линковка будет успешной (см. топологическая сортировка). Если циклические зависимости есть, или сортировать лень, можно перечислить нужные библиотеки несколько раз или взять их в группу:g++ main.cpp -Wl,--start-group -lglfw3 -lgdi32 -lopengl32 -lglew32s -Wl,--end-group