Sunday, May 31, 2009

Merging Two Blogs

I've used to have two blogs: this and about software. However this seems to be rather unmeaningfull work, so I've decided to merge two blogs. I've imported all posts from the old blog and deleted it. So now I will write anything only here.

Tuesday, May 26, 2009

Summer session

I wasn't writing here for much time, but I hope I will fix that soon :) At least today I've written posts to my software blog and here. This summer sessions seems to be the easiest of all that I've already had. I only have to pass two rather simple exams. So almost all summer is free from studying! And now I'm applying to study in Summer Scholl in OpenWay Group in Saint Petersburg. If I will succed then this will be a study course for a 6 weeks but studying seems to be very intersting and usefull there.

Visual C++ Debug Executables On Nondeveloper Machines

Well, If you need only facts then: Debug builds in Visual C++ include dependency on Microsoft.VC90.DebugCRT.dll which is installed with Visual C++ environment. This builds will not run on client machines even with Visual C++ Runtine Redistributable installed. Only Release build will run on such machines.
And here is the history how did I found this.
Recently I found that I couldn't start my application written in C++ on my netbook. At first I thought that this was the problem with hardware: program was compiled on 64-bit OS and machine and I was trying to run it on 32-bit machine. However I've tried to run program on another 32-bit machines and an attempt was succesfull. But on the forth machine it again failed to start. And by the way it provided a rather meaningless message which suggested to reinstall the problem. In .NET applications such an error is displayed if *.config file of executable has en error in XML syntax. but the was no any *.config file in this application.
I've assumed that there are missing dll file. So I've installed the only dependency that could be in this simple application: Microsoft Visual C++ 2008 Runtime Reditributable. That didn't helped. I've installed 2008 SP1 version. The same result. So I've tried to read the manifest file and found the dependency on Microsoft.VC90.DebugCRT.dll. I've compiled my application as a Release build and manifest included dependency on Microsoft.VC90.CRT.dll and application was starting on all required machines! It seems that debug vresion of C Runtime is distributed only with developer environment.
So the summary: Visual Stusio (or at least Visual C++ Express) is required to be installed to run Debug builds of programs.