不同图书馆之间的奇怪碰撞
本文关键字:碰撞 之间 图书馆 | 更新日期: 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上)。目前,我分析了两台电脑,它们给了我不同的错误:
- 出现故障的模块MSVBVM60.dll
- 发生故障的模块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,但根据您的计算机/客户端的不同,这可能不是一个选项。祝你好运