Как вы представляете статический сборочный файл lib как dllexport внешней DLL? - PullRequest
1 голос
/ 11 марта 2012

Поскольку встроенный ассемблер не поддерживается в 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 к этому, если это возможно.

...