If I do a LoadLibrary("msvcrt.dll") do I need to initialize the CRT somehow? Section 2 in the following document seems to say that I do, but I just get an undefined symbol error for _CRT_INIT when I try to call _CRT_INIT:
http://support.microsoft.com/kb/94248
Edit: I should have said that this is for a program that dynamically loads all the dlls that it uses, hence the call to LoadLibrary("msvcrt.dll").
If you're working in C++, have you declared _CRT_INIT
as extern "C"
?
Have you tried using the DUMPBIN
utility ( http://support.microsoft.com/kb/177429 -- if you haven't your PATH
up yourself, you'll have to use the Visual Studio Command Prompt I think) with the /EXPORTS
switch to see which functions are available from the CRT DLL, just to double check?
If you get stuck, VS2005 and earlier (and presumably later...) come supplied with the source code for the runtime library. For VS2005, this is in VC/crt/src
, relative to the VS install folder. It looks like _CRT_INIT
is the right name -- see crtdll.c
and dllcrt0.c
, and it's a C function.