在Server 2008 x64上安装VB6运行时

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

这些应用程序似乎在Windows 7中运行良好。我只是无法让他们与服务器2008发挥很好。我曾尝试运行依赖沃克,发现它缺less“msvbvm60.dll”。 跟踪到实际的VB6运行时间。 试图find一个VB6运行时为服务器2008年x64下载,这是一个不行。 所以我只是试图把“msvbvm60.dll”文件放在c:\ windows \ system32 \和c:\ windows \ SysWOW64中。

它说在SysWow64文件夹中已经有一个名为“msvbvm60.dll”的文件。 所以我的问题是,为什么它不工作? 看来,Windows 2008已经在机器上运行。 但依赖说,“msvbvm60.dll”丢失…:/

想法?

解决了!

这个问题与DEP有关!

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

我解决这个问题的方式非常简单! 我只是从Data Execution Prevention进程中排除了我的应用程序,它允许应用程序及其所有依赖项在没有错误的情况下及时加载。

用法:

rundll32 sysdm.cpl, NoExecuteAddFileOptOutList "FullPathToExecutable" 

例:

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

资料来源:

  • 在Windows server 2008 R2上使用终端服务访问冲突BEX或APPCRASH发生

这是一个疯狂的猜测,但你可以使用兼容模式运行它们吗? (右键单击>属性>兼容性)