【发布时间】:2014-10-07 10:53:27
【问题描述】:
我已经使用/Gd 将ns::Foo::Foo 编译成一个静态库,并尝试从另一个同样使用/Gd 编译的静态库中使用它。
第一个库包含public: __thiscall ns::Foo::Foo(void)),这似乎是正确的,因为the documentation for /Gd 声明成员的调用约定是__stdcall。
链接可执行文件时,它会失败,因为尽管使用/Gd 构建了所有内容,但第二个库中的public: __cdecl ns::Foo::Foo(void)) 存在不可解析的外部。我也没有使用任何#pragma 来更改调用约定。
为什么 MSVC++ 无法在导入时使用 __stdcall 调用约定,我该如何解决?
64 位构建,顺便说一句。
【问题讨论】:
标签: visual-c++ linker static-libraries