Поскольку встроенный ассемблер не поддерживается в 64-битном VC ++ (2010), я недавно преобразовал 70-страничную статическую библиотеку встроенных функций C ++ в прямую 64-битную статическую библиотеку ассемблера.64-битная DLL, содержащая статическую библиотеку, собирается без ошибок и корректно связывается с функциями asm.Но, связывая EXE с DLL, не видит функции asm, получая LNK2001: неразрешенную внешнюю ошибку символа для каждого уникального символа, на который есть ссылка.
Статический код ассемблера библиотеки выглядит примерно так:
public My_func
My_func proc
...
endp
DLL, содержащая статическую библиотеку, объявляет:
extern "C" __declspec(dllexport) My_func (some_arguments);
EXE-файл, который ссылается на DLL, объявляет:
extern "C" My_func (some_arguments); // __declspec(dllimport) here doesn't help
Я использую _cdecl во всем и компилирую как код C ++ везде.У меня заканчиваются вещи, чтобы попробовать, что мне здесь не хватает?Я хотел бы избежать добавления файла .DEF к этому, если это возможно.