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