0

可能重复:
在非托管 C++ 项目中使用 C# COM -> 0x7697C41F (KernelBase.dll) 处的第一次机会异常

我有一个从 Visual Studio 2005 升级到 Visual Studio 2010 (Project1) 并输出 dll 的项目。它是带有 clr 的 c++(它与 ac# 项目接口)。

我正在使用来自另一个 VS2010 项目(项目 2)的 dll(两者都有相同的 c++ 目标,都调试和 Win 32)。

在 project2 中,dll 接口使用了一个静态使用的类。这就是问题发生的地方。到目前为止,如果我执行在 .h 中声明但在 cpp 中定义的函数,则会出现错误。如果函数在 .h 中声明和定义,则没有问题。 尝试访问 cpp 中定义的函数时出错

这在升级到 VS 2010 之前有效。有什么想法吗?

4

2 回答 2

0

您可以使用 __declspec(dllexport) 检查是否应该在 DLL 中正确导出函数(即“存储”在二进制文件中)。

于 2013-01-15T19:55:08.103 回答
0

Hans Passant提供的关于类似错误代码的链接中,似乎此错误是在 .Net 4.0 clr 启动时在调试模式下使用的 IPC 协议发生的未记录异常,可以安全地忽略。

msdn上的回答链接

于 2013-01-15T20:36:10.190 回答