c# - 不同库之间的奇怪崩溃

标签 c# c++ visual-studio-2010 visual-studio-2005 windows-vista

我有一个使用 Microsoft Visual Studio 6 在 C++ 上开发的旧应用程序! 此应用程序称为 c++ DLL(使用 Microsoft Visual Studio 6 开发)。

旧版本:[APPLICATION (VS6)] <-> [c++ DLL (VS6) Version1]

对于一项新功能,我在 C# 上开发了一个新库(用于调用 Web 服务,使用带有 Windows 7 的 Visual Studio 2010 开发)和一个基于 C++ 的库包装器(使用带有 Windows 7 的 Visual Studio 2010 开发)。

新版本:[APPLICATION (VS6)] <-> [c++ DLL (VS6) Version2] <-> [c++ wrapper (VS 2010)] <-> [c# (VS 2010)]

我已经安装了:

  • Microsoft Visual c++ 2005 Redistributable SP1
  • Microsoft Visual c++ 2010 Redistributable SP1
  • Microsoft .NET Framework 4.0 客户端

为 .NET C# 库使用“gacutil/i”

我已经为我所有的电脑执行了这个程序,但只有一些电脑不能正常工作。

当我在 [c++ DLL (VS6) Version2] 上更改 [c++ DLL (VS6) Version1] 时,某些电脑出现问题。 我在多台 PC 上安装了这个解决方案,但对于某些 PC,程序崩溃了(在 Windows Vista 上)。 现在我分析了两台计算机,它们给我不同的错误:

  1. 错误模块 MSVBVM60.dll
  2. 错误模块 SYSFER.DLL

我哪里错了? 我需要安装一些其他包(运行时)?

谢谢

-------------------------------------------- --------------------------

我更改了库以减少问题!

新版本:[APPLICATION (VS6)] <-> [c++ DLL (VS6) Version2] <-> [c++ wrapper (VS 2010)]

问题总是:

  • 错误模块 SYSFER.DLL_unloaded

-------------------------------------------- --------------------------

在控制台上我启动了这个命令:sc config sysplant start= disabled

现在错误被改变了:

  • 错误模块 VERSION.dll_unloaded

你有什么想法吗?

谢谢

最佳答案

Sysfer.dll 是一个 Symantec Antivirus dll,它被注入(inject)到该机器上运行的每个应用程序中(这是在 SEP 12.1 中添加的)。一些较旧的遗留应用程序与其不兼容,并在运行时崩溃。这不是您的 C++ 库的问题,而是 Symantec 的问题。

好消息是,您可以在 symantec 中创建异常(exception),以允许旧的遗留应用程序运行。关注this link了解更多。另一个选项是卸载 Symantec Antivirus,但根据您的计算机/客户端,这可能不是一个选项。祝你好运!

关于c# - 不同库之间的奇怪崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25895515/

相关文章:

c# - 无法将引用类库的 ASP.NET 5 发布到 Azure

c# - 如何解决 BlazorServer 默认项目解决方案中的命名空间错误(VisualStudio 代码)

c# - 如何将 native 窗口处理程序 (HWND) 嵌入到 C# WPF 应用程序中

c++ - 如何将函数的 y→λx.yx 'lifting' 执行为仿函数?

visual-studio-2010 - 不支持混合类型

c++ - GLut.h/osfinfo.c/dbgheap.c/mlock.c 中 0x76fe15de 的未处理异常

XML 标记、属性及其定义

c# - 格式化日期时间时区

c# - ASP.NET MVC 单元测试项目 Entity Framework 错误

c++ - 在golang调用DLL?