不同库之间的奇怪崩溃

时间:2014-09-17 16:13:42

标签: 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#Library使用“gacutil / i”

我已经为我的所有电脑执行了此程序,但只有部分电脑无法正常工作。

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

  1. 错误模块MSVBVM60.dll
  2. 错误模块SYSFER.DLL
  3. 哪里错了? 我需要安装一些其他软件包(运行时)?

    谢谢

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

    我更改了库以减少问题!

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

    问题始终是:

    • 错误模块SYSFER.DLL_unloaded

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

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

    现在错误已更改:

    • 错误模块VERSION.dll_unloaded

    你有什么想法吗?

    由于

1 个答案:

答案 0 :(得分:0)

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

好消息是,您可以在赛门铁克中创建例外以允许您的旧版应用程序运行。关注this link了解详情。另一种选择是卸载Symantec Antivirus,但根据您的计算机/客户端,这可能不是一种选择。祝好运!