Hi Thibault,
when using C++ libs. The 3rd party deps are pure C, so no problem here.
When debugging I see that msvcrt.dll is still loaded, though 8.0
programs should link only against msvcr80.dll (which is the "new"
multithreaded runtime).
I think that all programs use this DLL, see the output window for a
minimal test:
Interesting. So I do not need to worry about msvcrt.dll being loaded.
'test2.exe': Loaded 'C:\dev\test2\test2\Debug\test2.exe', Symbols loaded.
'test2.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', No symbols loaded.
'test2.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', No symbols loaded.
'test2.exe': Loaded
'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcr80d.dll',
No symbols loaded.
'test2.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', No symbols
loaded. <--- here !
'test2.exe': Loaded
'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcp80d.dll',
No symbols loaded.
The properties for msvcrt.dll say it is part of the base OS, whereas
they indicate that all msvcrXX.dll are part of Visual Studio.
Anyway the correct CRT is loaded afterwards so you should not worry
about the fact that those DLLs have similar names (except the trailing
't' and the version number)
But on msdn you can read:
If you have a .lib or .obj file that needs to link to msvcrt.lib, then
you should not have to recompile it to work with the new msvcrt.lib in
Visual C++ 2005. The .lib or .obj file may rely on the sizes, field
offsets, or member function names of various CRT classes or variables,
and those should all still exist in a compatible way. When you relink
against msvcrt.lib, your final EXE and DLL image will now have a
dependency on msvcr80.dll instead of msvcrt.dll.
If you have more than one DLL or EXE, then you may have more than one
CRT, whether or not you are using different versions of Visual C++. For
example, statically linking the CRT into multiple DLLs can present the
same problem. Developers encountering this problem with static CRTs have
been instructed to compile with */MD* to use the CRT DLL. Now that the
CRT DLL has been renamed to msvcr80.dll, applications may have some
components linked to msvcrt.dll and others to msvcr80.dll. If your DLLs
pass CRT resources across the msvcrt.dll and msvcr80.dll boundary, you
will encounter issues with mismatched CRTs and need to recompile your
project with Visual C++ 2005. <---- here
I am still having obscure problems with my MSVC build, and they all have
to do with text in one or the other way. I surely would like to use the
prebuilt binaries, but it might be that my problems come from there.
Are you using the prebuilt binaries together with MSVC 8.0?
Regards,
Andreas
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/