Prev: VirtualAlloc,GlobalAlloc,HeapAlloc,..what to use in my case,...
Next: WinHttpOpen while using using a Proxy
From: adebaene on 26 Mar 2008 11:20 On 24 mar, 09:32, TheOne <daewon.y...(a)gmail.com> wrote: > On 3¿ù24ÀÏ, ¿ÀÈÄ2½Ã23ºÐ, "Carl Daniel [VC++ MVP]" > > > > > > <cpdaniel_remove_this_and_nos...(a)mvps.org.nospam> wrote: > > TheOne wrote: > > > Then, what should I do not to see this error message from an app built > > > on VS2008? I guess this should happen on every old system without the > > > directory. Which setting shoud I change in VS2008? Should I install > > > the directories needed whenever I install my application? > > > You need to deploy the VC 2008 runtime to your vista machine. You should > > have a file named vcresidt_x86.exe (or _x64, if you're on 64-bit) in a > > subdirectory of your VS installation. Run that exe file on the Vista > > machine. You can also download the redist from microsoft downloads if you'd > > prefer. > > >http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e0.... > > > Alternatively, you can build your application with static linking so that > > you don't depend on having the redistributables installed. > > > -cd > > Thank you for the kind answer. Much has been cleared. > > OK. I now know that I can solve this for MY computer. But the problem > is that our team is migrating the IDE from VS 6.0 to VS 2008 for our > development and the end product should support from 2k to Vista. > > Should I install the redis package everytime our product is installed? If you want to link against DLL version of the CRT (C-RunTime), then yes. That's why setup projects are for... There are .msm files to redistribute the CRT' dlls with your apps, and there is also several other redistibution possibilities. > Or should I static-build every module of my product? That is another solution, but it won't work if: - you've got several modules (eg, exes and dlls) in your app. - and you're passing "CRT state dependant" objects from one module to another. What it means, is that you can't (for example) : --> do a "fopen" in the EXE then passes the FILE* to a DLL and have the DLL do a fread/fwrite/whatever with it. -->new/malloc a pointer in a DLL and delete/free it in another DLL. etc.... Moreover, Microsoft recommends NOT to statically link the CRT, because it means your application won't take benefit from a potential update / bug correction that MS would apply to the CRT and distribute through Windows Update. I find this last argument quite weak, but anyway.... For more information on application deployment, see http://msdn2.microsoft.com/en-us/library/zebw5zk9.aspx > Or should I build for each version of OS? This has nothing to do with the target OS, but with wether the VC9 CRT is already installed on the target machine (you can't count on it). > Or should I stick to old VS 6.0? I do not belive the deployment problem is a sufficient reason to stick to the old compiler. YMMV Arnaud
First
|
Prev
|
Pages: 1 2 Prev: VirtualAlloc,GlobalAlloc,HeapAlloc,..what to use in my case,... Next: WinHttpOpen while using using a Proxy |