Reputation: 4929
I have moved all my users from windows 7 machines to Windows Server 2008 remote desktop. All of the apps they use currently were developed in vb6 (new apps are being developed in c#.Net currently) and need to be used for the time being...
The apps seems to run fine in Windows 7. I just can't get them to play nice with server 2008. I did try to run dependency walker and found it was missing "msvbvm60.dll". Tracked that down to the actual VB6 runtime. Tried to find a download for VB6 runtime for server 2008 x64 and that was a no go. So I just tried to put the "msvbvm60.dll" file inside c:\windows\system32\ and c:\windows\SysWOW64.
It said there was already a file named "msvbvm60.dll" in the SysWow64 folder. So my question is, why would it not work? It seems windows 2008 already has the runtime on the machine. But depends says that "msvbvm60.dll" is missing... :/
Ideas?
Upvotes: 3
Views: 8247
Reputation: 4929
Solved!
The issue has to do with DEP!
The root cause of this problem is a change made in Windows Server 2008 R2 to the time when the tsappcmp.dll module (Remote Desktop Services Application Compatibility DLL) gets initialized, which consequently causes your application to call DLL functions before it establishes a link to functions within the DLL.
The way I solved it was very simple! I just excluded my application from the Data Execution Prevention process and it allowed the application and all it's dependencies to load up without faulting in a timely manner.
Usage:
rundll32 sysdm.cpl, NoExecuteAddFileOptOutList "FullPathToExecutable"
Example:
rundll32 sysdm.cpl, NoExecuteAddFileOptOutList "C:\Program Files (x86)\MyApplication\MyApplication.exe"
Sources:
Upvotes: 2
Reputation: 1808
This is a wild guess but can you run them with Compatibility Mode? (right-click > Properties > Compatibility)
Upvotes: 1