Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在.h中声明并在.cpp中定义的代码在调用dll时出错_C++_Visual Studio 2010_Dll - Fatal编程技术网

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中。