3

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

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

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

想法?

4

2 回答 2

2

解决了!

这个问题与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"

资料来源:

于 2013-10-03T16:15:25.067 回答
1

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

于 2013-09-26T22:12:03.893 回答