C++ 如何在一个vs2008项目中将库与u stdcall和u cdecl结合起来

C++ 如何在一个vs2008项目中将库与u stdcall和u cdecl结合起来,c++,visual-studio-2008,linker,calling-convention,.lib,C++,Visual Studio 2008,Linker,Calling Convention,.lib,我想在我的项目中使用两个第三方库,但其中一个是使用u stdcall约定编译的,另一个是使用u cdecl编译的。无论我将项目属性设置为什么,链接器都无法链接一个库或另一个库。有办法做到这一点吗?编译外部代码时使用的调用约定应该是无关的。只要使用正确的约定声明了适当的函数,您用于自己代码的约定就无关紧要,无论您做什么选择,它都会起作用。Dude,8个问题,0%接受?编辑第一个函数的.h文件,并在函数声明中插入u stdcall。@HansPassant谢谢,它起作用了。@HansPassant。

我想在我的项目中使用两个第三方库,但其中一个是使用u stdcall约定编译的,另一个是使用u cdecl编译的。无论我将项目属性设置为什么,链接器都无法链接一个库或另一个库。有办法做到这一点吗?

编译外部代码时使用的调用约定应该是无关的。只要使用正确的约定声明了适当的函数,您用于自己代码的约定就无关紧要,无论您做什么选择,它都会起作用。

Dude,8个问题,0%接受?编辑第一个函数的.h文件,并在函数声明中插入u stdcall。@HansPassant谢谢,它起作用了。@HansPassant。非常感谢你!你为什么不让你的答案成为一个正确的答案,这样我们就可以对它进行投票呢?我同意,但我发现如果我只是尝试编译它,而不更改其中一个标题中的声明,链接器就会失败(在我的其他问题中有更详细的描述)。如果未在标头中明确指定约定,则导入的函数将使用哪种约定?我的假设(如果我错了,请纠正我)是在项目或特定文件的属性中指定的。在这种情况下(我对整个项目使用一种约定,而第三方库使用另一种约定编译),我认为链接器失败是有道理的。