C++ 在.h中声明并在.cpp中定义的代码在调用dll时出错
可能重复:C++ 在.h中声明并在.cpp中定义的代码在调用dll时出错,c++,visual-studio-2010,dll,C++,Visual Studio 2010,Dll,可能重复: 我有一个从VisualStudio2005升级到VisualStudio2010(Project1)并输出dll的项目。它是C++的CLR(它与C语言项目的接口)。 我使用另一个VS2010项目(项目2)的DLL(两个都具有相同的C++目标,调试和双赢都是32)。 在project2中,dll接口使用静态使用的类。 这里是问题发生的地方。到目前为止,如果我执行在.h中声明但在cpp中定义的函数,我会得到一个错误。如果函数是在.h中声明和定义的,那么就没有问题。 这在升级到VS 2
我有一个从VisualStudio2005升级到VisualStudio2010(Project1)并输出dll的项目。它是C++的CLR(它与C语言项目的接口)。
我使用另一个VS2010项目(项目2)的DLL(两个都具有相同的C++目标,调试和双赢都是32)。 在project2中,dll接口使用静态使用的类。 这里是问题发生的地方。到目前为止,如果我执行在.h中声明但在cpp中定义的函数,我会得到一个错误。如果函数是在.h中声明和定义的,那么就没有问题。
这在升级到VS 2010之前起作用。有什么想法吗?您可以使用uu declspec(dllexport)检查应该在DLL中的函数是否正确导出(意思是“存储”在二进制文件中)。从提供的关于类似错误代码的链接,此错误似乎是在启动.Net 4.0 clr时在调试模式下使用的IPC协议中发生的未记录异常,可以安全地忽略
好吧,外部可视函数看起来还可以(我可以进入它们并调试它们),但是当函数试图调用在静态类中声明的函数(但在该类的“cpp”中定义)时会出现问题。如果该函数在.h中定义,则它不再是DLL的一部分,或者,它可能同时存在于应用程序和DLL中。