【问题标题】:Installing VB6 runtime on Server 2008 x64在 Server 2008 x64 上安装 VB6 运行时
【发布时间】:2013-09-26 19:24:48
【问题描述】:

我已将我的所有用户从 Windows 7 计算机移至 Windows Server 2008 远程桌面。他们目前使用的所有应用都是用vb6开发的(目前正在用c#.Net开发新应用),暂时需要使用......

这些应用程序似乎在 Windows 7 中运行良好。我只是无法让它们在 server 2008 上运行良好。我确实尝试运行依赖项walker,发现它缺少“msvbvm60.dll”。追踪到实际的 VB6 运行时。试图找到用于服务器 2008 x64 的 VB6 运行时的下载,但这是不行的。所以我只是尝试将“msvbvm60.dll”文件放在 c:\windows\system32\ 和 c:\windows\SysWOW64 中。

它说在 SysWow64 文件夹中已经有一个名为“msvbvm60.dll”的文件。所以我的问题是,为什么它不起作用?看来windows 2008已经在机器上运行了。但是取决于说“msvbvm60.dll”丢失了......:/

想法?

【问题讨论】:

  • 有趣...我们在服务器 2008 中有 50 多个用户运行 VB6 ActiveX DLL...除了代码是一团糟之外没有任何问题!
  • @retailcoder 很可能他们在安装文件中包含了依赖项。
  • server 2008 的引擎盖下没有 win7 吗?您的安装程序中一定缺少某些东西...我认为。
  • 所有非常有效的陈述,但就目前而言,当我在任何 Windows 7 机器上运行相同的安装程序时,应用程序运行良好。此外,我必须再次指出应用程序在 Server 2008 上安装后无法运行的原因。缺少的文件是“msvbvm60.dll”,一个标准的 vb6 运行时......这不是我需要包含在我的应用程序中的特殊文件这是所有 vb6 应用程序都建立在其上的文件。 ;)
  • 你试过这个下载吗? support.microsoft.com/kb/290887

标签: c# windows dll vb6


【解决方案1】:

解决了!

问题与 DEP 有关!

此问题的根本原因是在 Windows Server 2008 R2 中对 tsappcmp.dll 模块(远程桌面服务应用程序兼容性 DLL)进行初始化的时间进行了更改,从而导致您的应用程序调用 DLL 函数在它与 DLL 中的函数建立链接之前。

我解决它的方法很简单!我刚刚从数据执行保护过程中排除了我的应用程序,它允许应用程序及其所有依赖项及时加载而不会出错。

用法:

rundll32 sysdm.cpl, NoExecuteAddFileOptOutList "FullPathToExecutable"

例子:

rundll32 sysdm.cpl, NoExecuteAddFileOptOutList "C:\Program Files (x86)\MyApplication\MyApplication.exe"

来源:

【讨论】:

    【解决方案2】:

    这是一个疯狂的猜测,但您可以在兼容模式下运行它们吗? (右键 > 属性 > 兼容性)

    【讨论】:

    • 试过了,没有一个操作系统可以工作... :l 我尝试的第一件事。
    猜你喜欢
    • 2013-01-03
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-13
    • 2012-02-01
    相关资源
    最近更新 更多