Я пытаюсь создать barebones-клиент и сервер в сборке x86 (финальный проект).Я написал работающий сервер / клиент на c ++ и теперь хочу перенести его.Однако, я в растерянности относительно того, как вызывать функции c ++ (т.е. стандартные функции SOCKET из WinSock2.h
или любые другие функции c ++ в этом отношении) внутри сборки.
Вот простая asm-программа, которая пытается вызвать printf:
TITLE asmMain.asm
.386
.model flat,C
printf PROTO C, format:PTR BYTE, args:VARARG
scanf PROTO C, format:PTR BYTE, args:VARARG
.data
value1 DWORD 1234567
formatStr BYTE "%d",0dh,0ah,0
scanStr2 BYTE "%d", 0
.code
printInt PROC
INVOKE printf, ADDR formatStr, value1
ret
printInt ENDP
END
Однако при сборке я получаю ошибку компоновщика:
LNK2019 unresolved external symbol _printf referenced in function printInt
Как мнеидти об этой задаче?И является ли процесс для вызова c ++ таким же, как c?Как мне сказать компилятору использовать функции из WinSock2.h
(Ws2_32.lib
)?Я делаю этот проект в Visual Studio 2017.