一、Win32 创建项目
使用的是Visual Studio2022
控制台程序 Console
DOS程序,没有窗口,通过Windows DOS窗口执行
窗口程序
拥有自己的窗口,可以与用户交互
库程序
存放代码、数据的程序,执行文件可以从中取出代码执行和获取数据
静态库程序:扩展名LIB,在编译链接程序时,将代码放入到执行文件中(没有入口,无法写入内存) 动态库程序:扩展名DLL,在执行文件执行时从中获取代码(有入口,可无法自己运行)
一下创建窗口程序:
2.第一段代码
#includeint WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { //HINSTANCE hInstance实例句柄-用来标识我们这个程序(句柄:是一个是用来标识对象或者项目的标识符,可以用来描述窗体,文件等,值得注意的是句柄不能是常亮) //HINSTANCE hPrevInstance 当前程序前一个实例句柄,可以把一些数据从前一个实例搬到自己的数据区来 //PSTR szCmdLine 是用来运行程序的命令行(Command Line)有些windows程序启动时用它来把文件装入内存 //int iCmdShow 窗体的大小如何展示 MessageBox( NULL, //父窗口句柄 TEXT("Hello World!"), // 内容 TEXT("标题!"), // 标题名称 //们把所有的字符串都打包到 TEXT 宏代码里面,就是用TEST("XXX")把它包裹起来。一般来说,并不需要把所有的字符串都打包到 //TEXT 宏代码里面,之所以这样做是因为这样在把程序转换成 Unicode 时会方便很多。 MB_OKCANCEL); //消息框中的按钮、图标显示类型 //#define MB_OK 0x00000000L // ok //#define MB_OKCANCEL 0x00000001L // ok和取消 //#define MB_ABORTRETRYIGNORE 0x00000002L // 中止、重试和取消 //#define MB_YESNOCANCEL 0x00000003L // yes/no/取消 //#define MB_YESNO 0x00000004L // yes和no //#define MB_RETRYCANCEL 0x00000005L // 重试和取消 return 0; }



