/ENTRY (Entry-Point Symbol)
- A function that specifies a user-defined starting address for an .exe file or DLL.
The /ENTRY option specifies a function as the starting address for an .exe file or DLL.
The function must be defined with the __stdcall calling convention. The parameters and return value must be defined as documented in the Win32 API for WinMain (for an .exe file) or DllEntryPoint (for a DLL). It is recommended that you let the linker set the entry point so that the C run-time library is initialized correctly, and C++ constructors for static objects are executed.
By default, the starting address is a function name from the C run-time library. The linker selects it according to the attributes of the program, as shown in the following table.
|Function name||Default for|
|mainCRTStartup (or wmainCRTStartup)||An application using /SUBSYSTEM:CONSOLE; calls main (or wmain)|
|WinMainCRTStartup (or wWinMainCRTStartup)||An application using /SUBSYSTEM:WINDOWS; calls WinMain (or wWinMain), which must be defined with __stdcall|
|_DllMainCRTStartup||A DLL; calls DllMain, which must be defined with __stdcall, if it exists|
The functions main, WinMain, and DllMain are the three forms of the user-defined entry point.
When creating a managed image, the function specified with /ENTRY must have a signature of (LPVOID var1, DWORD var2, LPVOID var3).
To set this linker option in the Visual Studio development environment
- Open the project's Property Pages dialog box. For details, see Setting Visual C++ Project Properties.
- Click the Linker folder.
- Click the Advanced property page.
- Modify the Entry Point property.
To set this linker option programmatically