game not working on other comps

Started by
16 comments, last by theMadHatter 17 years, 8 months ago
Alright. Just to state I did read through this thread: http://www.gamedev.net/community/forums/topic.asp?topic_id=406590 I compile with vs2005. At first, opening my game on another computer got the error: "This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem." Then I followed the directions here:
Quote:To Static Link: Configuration Properties->C++ -> Code Generation, change this to MT (Multi-Threaded) Manifest: Configuration Properties-> Linker -> Manifest File, change generate manifest to no
And I also installed the Microsoft Visual C++ 2005 Redistributable Package. Now my game opens but immediately closes. I opened it with dependency walker and it on the bottom it said 'Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.'. I was also missing a dll but downloaded it. I'm thinking the dll the error was refering to is mpr.dll because the icon next to it is redish while the others are grey. Also some of them have hourglasses next to them, I'm not sure what that means. So is there any more steps I need to do? Any help? Thanks.
Advertisement
Bump.
Theres a number of things I found that resolve this.

Due to vc8 runtime dll's not being placed in application directories anymore (theres an msdn article somewhere about using the WinSxS folder instead), you can

a) Make an application installer, making sure that all the dll's are packaged including those in c)
b) Do a 'full' windows update on the target system - I think its the .net 2.0 framework update that installs the c runtime dll's (even if youre not using .net)
c) Make sure the msvcp80.dll and msvcr80.dll files are in your application folder.

These may be completely hack ways of doing it, but they seem to work, and I'm not sure what the correct (MS) way is.

And those two missing dependencies in the dependency walker I think are safe to ignore (one something about java?)
Quote:a) Make an application installer, making sure that all the dll's are packaged including those in c)
b) Do a 'full' windows update on the target system - I think its the .net 2.0 framework update that installs the c runtime dll's (even if youre not using .net)
c) Make sure the msvcp80.dll and msvcr80.dll files are in your application folder.


I did everything but a).
The game still does the same thing.
Will the doing of a) help it? Because I don't really know how to do step a.
I began having this problem too when I upgraded from Visual Studio 6 to Visual Studio 2005.

The problem is the way VC8 apps handle linking to needed libraries, such as MFC, ATL, and the CRT. What with the manifests and the WinSXS and all, it can be kinda confusing. One quick way to solve this is to head over to the VC\redist\x86\ folder in your Visual Studio directory, and copy the appropriate redistribution folders there into your program directory when you distribute. (If you don't use MFC or ATL in your app, you probably only need the Microsoft.VC80.CRT one)

(Incidentally, I think it would be nice if the standard "Release" configuration when you start a project with VC8 would automatically be distributable - I only rarely make installers for my Visual Studio-made apps; for something like a small utility, anything longer than a quick unzip seems so silly at install time.)

Try testing out if a "Hello, World" program or similiar works on another computer. If so, then it might be a library that you're using causing this problem.
Alright.
Quote:Try testing out if a "Hello, World" program or similiar works on another computer. If so, then it might be a library that you're using causing this problem.

I will test this out. I can't until monday because that is the next time I have access to another computer. The other one in my house used to have dev-cpp installed and the game does work on that computer.
Quote:I began having this problem too when I upgraded from Visual Studio 6 to Visual Studio 2005.
Exactly what I have done :).

Quote:
The problem is the way VC8 apps handle linking to needed libraries, such as MFC, ATL, and the CRT. What with the manifests and the WinSXS and all, it can be kinda confusing. One quick way to solve this is to head over to the VC\redist\x86\ folder in your Visual Studio directory, and copy the appropriate redistribution folders there into your program directory when you distribute. (If you don't use MFC or ATL in your app, you probably only need the Microsoft.VC80.CRT one)

The folders right? Not the files inside of them?
Okay all done. I will test this on monday as well. Thank you both for your help.
*crosses fingers*
:)
Quote:Original post by theMadHatter
The folders right? Not the files inside of them?

No, you need the stuff inside them too. It adds a couple of megs to your distribution, which might seem kinda wasteful, but it's probably the simplest way to do it if you're distributing without installers. :)
Quote:No, you need the stuff inside them too. It adds a couple of megs to your distribution, which might seem kinda wasteful, but it's probably the simplest way to do it if you're distributing without installers. :)

I know. What I meant was do I keep them in the folders and just copy/paste the folders directly in to the game folder; or do I open each folder seperately and copy/paste the actual files and put them in my app folder without being inside another folder. Yeah. :)
Oh. :)

I just copy the folders as well as their contents, but I think it should work the other way too.

This topic is closed to new replies.

Advertisement