exe file size visual studio

Started by
3 comments, last by Petar Titelski 17 years, 1 month ago
I have been working at home, and at work on the same project from scratch. Home has directX9.0c_sdk(basic) + VisualStudio2003 + WinXP SP1 Work has directX9.0c_sdk_october2006 + VisualStudio2005 + WinXP SP2 project code and project settings were identical, (code generation set to /MD) when I called D3DXLoadMeshFromX function in my code to load X file, release exe size at home jumped from 50k to 400K. at work, application size remained 50K. Plus, I couldn't start works' exe at home. Not even after I installed october2006 redistributable. It just dialogs: "error executing file". Any ides? ps. I have been doing this in order to locate problem from thread http://www.gamedev.net/community/forums/topic.asp?topic_id=427232 best regards, Petar
Advertisement
At some point (Feb 2006? I'm not sure), the D3DX library was moved from a static library to a DLL. So, your home code is using the static library, and pulling all of D3DX into the EXE, whereas your work code is linking to the DLL, so the D3DX code isn't in your EXE.

So long as you have the correct DLL version on your home PC, it should be fine. You could use dependancy walker to find out if there's and DLLs your app needs that it doesn't have.

What's the exact message you get?
god bless you for that answer.

exact error message is: "error executing program"

and dependency walker said:
The Side-by-Side configuration information for "f:\my_app\my_app.exe" contains errors. This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem (14001).
Error: At least one required implicit or forwarded dependency was not found.
MSVCP80.DLL
MSVCR80.DLL

alreaady I found that VS2005 does some embadding manifest thingie wich is not supported by SP1, and you have to have SP2 to work, or manually install Microsoft.VC80.CRT
You can avoid that problem with the least effort (and without any installation) by copying VC/redist/x86/Microsoft.VC80.CRT/*.* (three .dll and one .manifest) into the application's directory. That'll still work on Windows 2000 which doesn't understand side-by-side libraries, and should work on all future versions of Windows.
That is simple. But also that is 2MB burden on 60K application.
I'll stick with VS2003 for a while, it regures dlls that are usually already in windows/system32. (If not, simple copying is enough)

This topic is closed to new replies.

Advertisement