PSDK compiler is linking with system32\msvcrt.dll?

33 Views Asked by At

I am compiling OpenSSL under Windows XP 64 using PSDK2003.

There is a /MD flag in the compiler settings.

If the PATH environment variable contains %SYSTEMROOT%/system32, then compilation is successful.

But if I don't specify %SYSTEMROOT%/system32, then compilation fails with an error:

error LNK2001: unresolved external symbol __security_check_cookie

In this case, if I specify the additional library bufferoverflowu.lib, then compilation will be successful again.

I really don't understand this behavior. Can you please explain why this happens?

I heard that the PSDK compiler, unlike the Visual Studio compiler, is linking with system32\msvcrt.dll. I really don't understand what this means? Can you please explain what means: linking with a system DLL? And what's the difference between linking in Visual Studio and PSDK? Is there NOT system msvcrt.dll? I know that msvcr70.dll, msvcr80.dll, etc are not system. But what about NOT system msvcrt.dll?

Does linking with a system DLL depend on the version of Windows? Will anything change if I compile under Windows 10/11 (will this app work on older Windows 7/8)?

0

There are 0 best solutions below