Author Topic: Something changed on W11 25H2 64b about C library RTL 32b (like "crtdll.dll").  (Read 168 times)

Offline ThierryD

  • Multiple posting newcomer
  • *
  • Posts: 100
Hi,

Since "major" windows update of march 2026 on W11 25H2 64b, I constat change about C library RTL 32b (like "crtdll.dll" stored in C:\Windows\SysWOW64).
I detect this because simple command "lcc -v" with LCC compiler 32b fail with error message Windows appear :
"... GetMainArgs unreachable ..."
I search with tool "lddw" (porting of ldd on Win32) directly to know what DLL is breaking, and listing stop after load of "crtdll.dll" (stored in usual directory C:\Windows\SysWOW64 in which all 32 bit DLL are stored on W11 64 bit).
I compare size of this DLL on my "old" configuration fix PC (resdtrict to W11 beginning version), and size are very different, and date is about 2021 ... not 2026. To try, I transfer this most size DLL in C:\Windows\SysWOW64 (after manipulations with my "double boot" W11/Linux on my laptop   :o), and ... YES, I resolve this problem.
"lcc -v" work again.

But, and I don't know why ..., Borland C/C++ 5.5.1 compiler fail too during use into CB :

Code
cmd /c bcc32 | grep Borland         
File STDIN:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
bcc32.exe -q  -w -tW -6 -y -v -D_DEBUG -DDEBUG    -IC:\BCC55\include -IC:\bccsdk\include -oobjBC55\Debug\src\Lesson03.obj -c src\Lesson03.c
brcc32.exe -32 -foobjBC55\Debug\src\Lesson03.res -IC:\BCC55\include -IC:\bccsdk\include -d_DEBUG -dDEBUG  src\Lesson03.rc
ilink32.exe -q -aa  -v  -LC:\BCC55\lib\psdk -LC:\BCC55\lib c0w32 objBC55\Debug\src\Lesson03.obj,binBC55\Debug\Lesson03.exe,,import32.lib cw32mti.lib opengl32.lib glu32.lib gdi32.lib winmm.lib user32.lib kernel32.lib,,objBC55\Debug\src\Lesson03.res
Borland Resource Compiler  Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.
src\Lesson03.c:
Warning W8060 src\Lesson03.c 386: Possibly incorrect assignment in function CreateGLWindow
Warning W8071 src\Lesson03.c 406: Conversion may lose significant digits in function CreateGLWindow
Warning W8060 src\Lesson03.c 408: Possibly incorrect assignment in function CreateGLWindow
Warning W8060 src\Lesson03.c 429: Possibly incorrect assignment in function CreateGLWindow
Warning W8057 src\Lesson03.c 590: Parameter 'hInstance' is never used in function WinMain
Warning W8057 src\Lesson03.c 590: Parameter 'hPrevInstance' is never used in function WinMain
Warning W8057 src\Lesson03.c 590: Parameter 'lpCmdLine' is never used in function WinMain
Warning W8057 src\Lesson03.c 590: Parameter 'nCmdShow' is never used in function WinMain
Error: Error processing module src\Lesson03.c
Process terminated with status 2 (0 minute(s), 1 second(s))
0 error(s), 8 warning(s) (0 minute(s), 1 second(s))
Build log saved as:
file://C:/src/OpenGL/NeHe_Lesson03-master/Lesson03_build_log.html

If this situation appear, my first action is to reproduce all actions executed by CB into command console :

Code
set PATHSAV=%PATH%
set PATH=C:\BCC55\bin;%PATH%
bcc32.exe -q  -w -tW -6 -y -v -D_DEBUG -DDEBUG    -IC:\BCC55\include -IC:\bccsdk\include -oobjBC55\Debug\src\Lesson03.obj -c src\Lesson03.c
src\Lesson03.c:
Warning W8060 src\Lesson03.c 386: Possibly incorrect assignment in function CreateGLWindow
Warning W8071 src\Lesson03.c 406: Conversion may lose significant digits in function CreateGLWindow
Warning W8060 src\Lesson03.c 408: Possibly incorrect assignment in function CreateGLWindow
Warning W8060 src\Lesson03.c 429: Possibly incorrect assignment in function CreateGLWindow
Warning W8057 src\Lesson03.c 590: Parameter 'hInstance' is never used in function WinMain
Warning W8057 src\Lesson03.c 590: Parameter 'hPrevInstance' is never used in function WinMain
Warning W8057 src\Lesson03.c 590: Parameter 'lpCmdLine' is never used in function WinMain
Warning W8057 src\Lesson03.c 590: Parameter 'nCmdShow' is never used in function WinMain

C:\src\OpenGL\NeHe_Lesson03-master>brcc32.exe -32 -foobjBC55\Debug\src\Lesson03.res -IC:\BCC55\include -IC:\bccsdk\include -d_DEBUG -dDEBUG  src\Lesson03.rc
Borland Resource Compiler  Version 5.40
Copyright (c) 1990, 1999 Inprise Corporation.  All rights reserved.

ilink32.exe -q -aa  -v  -LC:\BCC55\lib\psdk -LC:\BCC55\lib c0w32 objBC55\Debug\src\Lesson03.obj,binBC55\Debug\Lesson03.exe,,import32.lib cw32mti.lib opengl32.lib glu32.lib gdi32.lib winmm.lib user32.lib kernel32.lib,,objBC55\Debug\src\Lesson03.res
Error: Error processing module src\Lesson03.c

Happy, fail is reproductible  ;D

But, if I suppress only one space of this last command line before first option "-L...", linkage succeed :

Code
ilink32.exe -q -aa  -v -LC:\BCC55\lib\psdk -LC:\BCC55\lib c0w32 objBC55\Debug\src\Lesson03.obj,binBC55\Debug\Lesson03.exe,,import32.lib cw32mti.lib opengl32.lib glu32.lib gdi32.lib winmm.lib user32.lib kernel32.lib,,objBC55\Debug\src\Lesson03.res

Strange ? Not ? Call of " GetMainArgs" with old buggy DLL "crtdll.dll" ?

I know, it's not a behaviour about "faulty" CB, only system environment seem buggy ... but, just to test, can you suppress unnecessary spaces during generation of command lines ?

Here extract of my CB project with Borland C/C++ 5.5.1 :

Code
		<Target title="Debug BorlandC">
<Option platforms="Windows;" />
<Option output="binBC55/Debug/Lesson03" prefix_auto="1" extension_auto="1" />
<Option object_output="objBC55/Debug" />
<Option type="0" />
<Option compiler="bcc" />
<Compiler>
<Add option="-w" />
<Add option="-tW" />
<Add option="-6" />
<Add option="-y" />
<Add option="-v" />
<Add option="-D_DEBUG" />
<Add option="-DDEBUG" />
</Compiler>
<ResourceCompiler>
<Add option="-d_DEBUG" />
<Add option="-dDEBUG" />
</ResourceCompiler>
<Linker>
<Add option="-v" />
<Add library="import32" />
<Add library="cw32mti" />
<Add library="opengl32" />
<Add library="glu32" />
<Add library="gdi32" />
<Add library="winmm" />
<Add library="user32" />
<Add library="kernel32" />
</Linker>
</Target>

Because in CB configuration, I have just add "-v" in Tab "Another linker options" without spaces ...

Thank's for all.

Thierry D.