01. windows程序和console程序区别

一. windows程序和控制台程序的区别:

1. 入口点不同:

Window程序:

int __stdcall wWinMain(  HINSTANCE hInstance,
                       HINSTANCE hPrevInstance,
                       LPWSTR    lpCmdLine,
                       int       nCmdShow);

  控制台程序:

int main();

 2连接选项不同:

windows程序链接选项:/SUBSYSTEM:WINDOWS

控制台程序链接选项:/SUBSYSTEM:CONSOLE

 

二. windows程序入口点的解释

int __stdcall wWinMain(HINSTANCE hInstance,//实例句柄,0x00400000,内存中程序首地址
                       HINSTANCE hPrevInstance,//向后兼容,基本不用
                       LPWSTR    lpCmdLine,//命令行
                       int       nCmdShow);//程序最初如何显示

  

三. windows函数

大部分函数都有A版和W版,例如MessageBox

#ifdef UNICODE
#define MessageBox  MessageBoxW
#else
#define MessageBox  MessageBoxA
#endif // !UNICODE

  TEXT(quote)也是通过定义UNICODE实现的。

 

tchar.h中的__T(x)用的是 _UNICODE多一个下划线。

 

文件

开关

tchar.h

_UNICODE

_T

winnt.h

UNICODE

TEXT

 

一. windows程序和控制台程序的区别:

1. 入口点不同:

Window程序:

int __stdcall wWinMain(  HINSTANCE hInstance,

                       HINSTANCE hPrevInstance,

                       LPWSTR    lpCmdLine,

                       int       nCmdShow);

控制台程序:

int main();

 

2. 连接选项不同:

windows程序链接选项:/SUBSYSTEM:WINDOWS

控制台程序链接选项:/SUBSYSTEM:CONSOLE

 

二. windows程序入口点的解释

int __stdcall wWinMain(HINSTANCE hInstance,//实例句柄,0x00400000内存中程序首地址

                       HINSTANCE hPrevInstance,//向后兼容,基本不用

                       LPWSTR    lpCmdLine,//命令行

                       int       nCmdShow);//程序最初如何显示

 

三. windows函数

大部分函数都有A版和W版,例如MessageBox

#ifdef UNICODE

#define MessageBox  MessageBoxW

#else

#define MessageBox  MessageBoxA

#endif // !UNICODE

 

TEXT(quote)也是通过定义UNICODE实现的。

 

tchar.h中的__T(x)用的是 _UNICODE多一个下划线。

 

文件

开关

tchar.h

_UNICODE

_T

winnt.h

UNICODE

TEXT

 

 

posted @ 2020-06-22 09:57  八转达人  阅读(598)  评论(0编辑  收藏  举报