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/

Reply via email to