Visual C ++ 2005 does not add / dll argument to linker

What options in a Visual Studio 2005 project can cause the assembly to not add the / dll argument to the linker command line?

Background:

we have a large VC6 project that I am porting to VC 2005. This project contains a number of MFC extension DLLs, and I run the following linker warning when starting the assembly:

warning LNK4086: entrypoint '_WinMainCRTStartup' is not __stdcall with 12 bytes of arguments; image may not work

The reference to _WinMainCRTStartup is very suspicious because it is a DLL (which should not have the _WinMainCRTStartup function at all). A search for sources indicates that such a function is not defined, so I came to the conclusion that it is provided to us by the linker.

A review of linker.exe command line arguments shows the problem (I briefly shortened all the paths for short):

/ OUT: "Debug \ thedll.dll" / INCREMENTAL / MANIFEST / MANIFESTFILE: "Debug \ thedll.dll.intermediate.manifest" / DEF: ". \ Thedll.def" / DEBUG / PDB: "\ Debug \ thedll.pdb "/ SUBSYSTEM: WINDOWS / MACHINE: X86 version.lib

Invalid command line argument missing: / dll

If I manually add this argument (using project properties, configuration properties \ linker \ command line options), I can get things to compile correctly.

But I am wondering what causes the project to fail to install the command line / DLL in the linker.exe file in the project configuration?

DLL, .vcproj , - , .

. \\ . Dynamic Library (.dll)

EDIT2 - -, VS , . rggggg

+3
2

, , - , . → → → .

+1

, . . . .

0

Source: https://habr.com/ru/post/1715562/


All Articles