Линковщик не хочет лнковать

166
07 октября 2018, 14:40

Линковщик выдаёт ошибку undefined reference to '_imp__lib_test@8'. Если использовать nm то можно найти что в библиотеке есть функция _imp__lib_test но она без @8. Может ли это быть причиной undefined reference и если да то как избавиться от @8

Answer 1

func@Х это формат VC/VC++/mingw для C функций __stdcall с общим размером аргументов равным 8 байтам.

Причина это защита от stack corruption так как stdcall должен очищать stack а в cdecl это должен делать то кто вызвал процедуру.

В вашем случае возможно эта защита и срабатывает, если в DLL функция cdecl (по умолчанию будет без типа вызова) a в коде программы она определена с stdcall/WINAPI.

READ ALSO
оптимизация записи в STL вектор

оптимизация записи в STL вектор

У меня какая-то странная ситуация, которую никак не могу понять

171
Инициализация массива указателей

Инициализация массива указателей

Разбираюсь в чужом кодеНасколько правомерно так инициировать:

167
Как зарезервировать память для MapViewOfFileEx?

Как зарезервировать память для MapViewOfFileEx?

Работая с мапингом под виндой, столкнулся с такой проблемой, не получается зарезервировать буфер под MapViewOfFileEx

173