Unix like fork is quite foreign in windows. Cygwin simulates fork on windows: http://stackoverflow.com/questions/985281/what-is-the-closest-thing-windows-has-to-fork[^]
There are many "unix simulation libraries" available on windows (including cygwin, interix, ...) but I wouldn't recommend building on top of these if you don't have to. My opinion about the cygwin fork simulation: In the unix world many tools/scripts make use of spawining other processes and processing data by piping the output of one process to another process. Running the same script/program "network" on windows/cygwin is multiple times slower than running the same command on linux if it involves a lot of fork invocations (for example a simple ./configure and ./make combination is always much faster on linux).
Using VS2008 Professional (v 9.02) in Debug mode on Windows 8 to write a Win32 program I have two versions of Windows Common Controls ComCtl32.dll loading. On a call to: CreateDialogParam one: Product Version 6.2.92.../File Version 5.82.92... loads then on a call to SetupDiGetClassImageList another one loads having Product Version 6.2.92.../File Version 6.10.92.
I only noticed when having problems trying to use a feature of ListView header (up/down sort arrows) that various Googled sources attribute to needing a later version of ComCtl32.dll.
I had a look at the Manifest but see nothing seems relevant there. Switching to Release mode had no effect.
Is it possible to just load one version, preferably the later version loading?
The above with slightly more detail from the VS Output window is below for reference if needed.
No I hadn't tried anything in the manifest. I've had a quick scan of the link you set and (initially)took the quick option of pasting in the example #pragma just as it's given for a version version= '220.127.116.11' to set the version from a .h file. No obvious difference yet as its still loading a v5 and a v6.
Of relevancet, I have a WTL/ATL version that I can step through side by side with the Win32 version and the WTL/ATL only loads one ComCtl32.dll, the v6.
Adding manifest as recommended prevents v5 ComCtl32.dll loading, just the v6 but as soon as I open the my dialog with my ListView control on it's gone. Just flickers on the screen and disappears. Calling
The dialog with listbox using one ComCtl32 6 and not loading a v5 at well that flicked out of existence didn't bode too well for debug success so I started from scratch putting in a manifest line at the beginning and it displays. Only one ComCtl32 6.0.9200.16579 is loaded so that looks like success (apart from having to cut'n past stuff stuff).
I am wondering what might be the advantage of CStringArray over CArray<CString, LPCTSTR>. The background is that I am planning to implement a CStringArray-like template class which is either explicitly ANSI or explicitly Unicode, and would like to implement it as CArray<CStringA, LPCSTR> and CArray<CStringW, LPCWSTR>, respectively.
I have never mastered the usage of MFC container classes but I have an advice: support only unicode unless you are forced to support ansi. WinNT uses unicode/UTF16 inside, the codepaging/ansi api is just heritage from older windows versions. Supporting both is just a waste of time and unecessary complication if you don't have to support Win9x.
EDIT: Regarding the difference between CStringArray and CArray<CString...> I have a tip: The old versions of MFC didn't contain any templated containers, those mfc versions had only some non-template containers for a few types and CStringArray was one of them (among the others like CByteArray). I guess CStringArray exists just because of backward compatibility. CString didn't have reference counting in some older versions of MFC so in theory it is possible for a specialized CStringArray to reallocate the array memory without copying strings if CStringArray knows the internal implementation of CString, but a templated CArray has to work with copying/deleting. With reference counting a general CArray can do a relatively good job and with today's move ctors it can be even better if MFC supports it.
There are situations when I must support ANSI, for example when it comes to dealing with ANSI text files or serial protocols. I want to have the CStringArray functionality available for the must-be-ANSI situations while generally compiling for Unicode. Btw, I find MFC containers quite useful (unless, of course, you are using STL). The documentation is quite good, and you can debug-step through the source code.
Last Visit: 31-Dec-99 18:00 Last Update: 11-Jul-14 1:45