VS2017: ошибки компоновщика после включения MASM в проекте C ++ - PullRequest
0 голосов
/ 01 ноября 2019

Итак, я пытаюсь создать оболочку .dll (32-битную x86) в C ++, и мне нужно написать функции оболочки для ассемблераЯ попытался использовать встроенный ассемблер в сочетании с __declspec (naked), но это не сработало для конструкторов C ++ (компилятор все еще генерировал код).

Я пытался обойти это, написавс необработанными файлами ассемблера напрямую. Прежде чем что-то делать с MASM (и вызывать любую из моих ассемблерных функций), мой проект компилируется и связывается нормально. Чтобы иметь возможность использовать MASM, я зашел в «Настройки сборки» и включил MASM. После этого я получаю кучу ошибок компоновщика с, казалось бы, не связанными функциями:

Error   LNK2001 unresolved external symbol _memset  SoundEngine D:\Home\Documents\Git\SoundEngine\SoundEngine\MSVCRT.lib(utility_desktop.obj)   1   
Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol _free    SoundEngine D:\Home\Documents\Git\SoundEngine\SoundEngine\MSVCRT.lib(delete_scalar.obj) 1   
Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol __cexit  SoundEngine D:\Home\Documents\Git\SoundEngine\SoundEngine\MSVCRT.lib(utility.obj)   1   
Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol __CxxThrowException@8    SoundEngine D:\Home\Documents\Git\SoundEngine\SoundEngine\MSVCRT.lib(throw_bad_alloc.obj)   1   

Так как в моем коде даже нет ссылок (по крайней мере, напрямую), как я могу устранить эту ошибку? ?

Меняет ли VS какие-либо параметры искажения имени или компоновщика после включения MASM?

...