Visual c++ visualc&x2B+;2008年可以';不包括它自己的静态库

Visual c++ visualc&x2B+;2008年可以';不包括它自己的静态库,visual-c++,static-linking,dynamic-linking,Visual C++,Static Linking,Dynamic Linking,我有两个项目:一个静态库和一个将静态链接到此静态库的DLL。让我们假设: foo.lib (static library) bar.dll (links against foo.lib) foo.lib具有以下功能: fooFile(...); 我成功地构建了静态库,dumpbin/symbols告诉我函数就在那里(尽管有一些名称混乱)。尝试将其链接到bar.dll项目时,出现以下错误: error LNK2019: unresolved external symbol _fooFile r

我有两个项目:一个静态库和一个将静态链接到此静态库的DLL。让我们假设:

foo.lib (static library)
bar.dll (links against foo.lib)
foo.lib具有以下功能:

fooFile(...);
我成功地构建了静态库,dumpbin/symbols告诉我函数就在那里(尽管有一些名称混乱)。尝试将其链接到bar.dll项目时,出现以下错误:

error LNK2019: unresolved external symbol _fooFile referenced in function _fooSomething

为什么会失败?相同的代码在Linux环境中可以正常工作。

bar.dll项目编译为C,或者在
extern“C”{…}
下包含foo.lib的头。本质上,一个项目将函数导出为C++链接,而另一个项目试图用C链接导入它。

我忘记Visual C++使用C++作为默认值: