不同图书馆之间的奇怪碰撞

本文关键字:碰撞 之间 图书馆 | 更新日期: 2023-09-27 18:22:24

我有一个使用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。

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

我已安装:

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

对.NET C#库使用"gautil/i"

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

当我在[c++DLL(VS6)Version2]上更改[c++DLL。我在几台电脑上安装了这个解决方案,但对一些人来说,程序崩溃了(在windows Vista上)。目前,我分析了两台电脑,它们给了我不同的错误:

  1. 出现故障的模块MSVBVM60.dll
  2. 发生故障的模块SYSFER.DLL

我错在哪里了?我需要安装其他软件包(运行时)?

谢谢

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

我换了图书馆以减少问题!

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

问题总是:

  • 发生故障的模块SYSFER.DLL_unloaded

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

在控制台上,我启动了以下命令:sc config sysplant start=disabled

现在错误改变了:

  • 故障模块VERSION.dll_unloaded

你有主意吗?

感谢

不同图书馆之间的奇怪碰撞

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

好消息是,您可以在symantec中创建异常,以允许旧的遗留应用程序运行。点击此链接了解更多信息。另一个选项是卸载Symantec Antivirus,但根据您的计算机/客户端的不同,这可能不是一个选项。祝你好运