轻松转换win程序和控制台程序

其实,一个程序要将其编译成win程序或控制台程序(对应WinMain或main),在vs08中,只需改动一个选项,

项目->属性->Linker->子系统  改为windows就是win程序,相应的会寻找WinMain函数,改为Console就是控制台的,寻找main函数。

 

所以一个程序文件中完全可以同时出现WinMain函数和main函数,根据编译对应的子系统选项来连接。

//
// WinMain
//
int WINAPI WinMain(HINSTANCE hinstance,
                   HINSTANCE prevInstance,
                   PSTR cmdLine,
                   int showCmd)

{
    if(!d3d::InitD3D(hinstance,
        640, 480, true, D3DDEVTYPE_HAL, &Device))
    {
        ::MessageBox(0, _T("InitD3D() - FAILED"), 0, 0);
        return 0;
    }
       
    if(!Setup())
    {
        ::MessageBox(0, _T("Setup() - FAILED"), 0, 0);
        return 0;
    }

    d3d::EnterMsgLoop( Display );

    Cleanup();

    Device->Release();

    return 0;
}

//main
int main()
{
    printf("hello, world");
}

 

另外一个不同的地方是C/C++的预处理器定义:

 

若是控制台程序:WIN32;_DEBUG;_CONSOLE

win程序:WIN32;_DEBUG;_WINDOWS

 

两者显然是不同的,对于不同类型的程序,c/c++预处理器肯定会有不同的设置方式,win程序的处理方式肯定更加的多样化,所以,最好也将其进行更换。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值