由于 64 位 VC++ (2010) 不支持内联汇编器,我最近将一个 70 页的内联函数静态 C++ 库转换为一个直接的 64 位汇编器静态库。然后,包含静态库的 64 位 DLL 将毫无错误地构建,并正确链接到 asm 函数中。但是将一个 EXE 链接到 DLL 并没有看到 asm 函数,得到一个 LNK2001: unresolved external symbol error for each unique symbol referenced。
静态库汇编代码如下所示:
public My_func
My_func proc
...
endp
包含静态库的 DLL 声明:
extern "C" __declspec(dllexport) My_func (some_arguments);
链接到 DLL 的 EXE 声明:
extern "C" My_func (some_arguments); // __declspec(dllimport) here doesn't help
我一直在使用 _cdecl 并在各处编译为 C++ 代码。我没有东西可以尝试了,我在这里错过了什么?如果可能,我想避免向其中添加 .DEF 文件。