Linker options

一  一段代码

#if defined(WIN32)
    #ifdef NDEBUG
        #pragma comment(linker, "/SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup")
    #else
        #pragma comment(linker, "/SUBSYSTEM:CONSOLE")
    #endif
#endif

二 代码解释

1  pragma comment

#pragma comment( comment-type [,"commentstring"] )

comment-type:compiler | exestr | lib | linker | user 

2 linker options

(1)/SUBSYSTEM :通知操作系统如何运行 .exe 文件。

/SUBSYSTEM:{BOOT_APPLICATION|CONSOLE|EFI_APPLICATION|  
            EFI_BOOT_SERVICE_DRIVER|EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|  
            POSIX|WINDOWS)  
            [,major[.minor]] 

其中:

CONSOLE
Win32 字符模式应用程序。 操作系统为各种控制台应用程序提供控制台。 如果为本机代码定义了 main 或 wmain,为托管代码定义了 int main(array<String>),或者完全使用 /clr:safe 构建应用程序,则CONSOLE是默认值。

WINDOWS
应用程序不需要控制台,原因很可能是它会创建自己的窗口来与用户进行交互。 如果为本机代码定义了 WinMain 或 wWinMain,或为托管代码定义了 WinMain(HISTANCE *, HINSTANCE *, char *, int) 或 wWinMain(HINSTANCE *, HINSTANCE *, wchar_t *, int),则 WINDOWS 是默认值。

在 Visual Studio 开发环境中设置此链接器选项:

1.打开项目的“属性页” 对话框。
2.选择链接器文件夹。
3.选择系统属性页。
4.修改SubSystem属性。

(2)/ENTRY  : 设置起始地址。

/ENTRY:function 

function取值:

功能名称默认值为
mainCRTStartup (或wmainCRTStartup)使用 /subsystem: console; 的应用程序调用main(或wmain)An application that uses /SUBSYSTEM:CONSOLE; calls main (or wmain)
WinMainCRTStartup (或wWinMainCRTStartup)使用 /SUBSYSTEM 的应用程序:WINDOWS; 调用WinMain(或wWinMain),必须对其进行定义以使用 __stdcallAn application that uses /SUBSYSTEM:WINDOWS; calls WinMain (or wWinMain), which must be defined to use __stdcall
_DllMainCRTStartupDLL;调用DllMain如果存在,其必须进行定义以使用 __stdcall

 在 Visual Studio 开发环境中设置此链接器选项
1.打开项目的“属性页” 对话框。
2.单击链接器文件夹。
3.单击高级属性页。
4.修改入口点属性。

三 参考

comment (C/C++) 

linker options

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值