Hey,别搞错了Win32项目和Win32控制台程序
你是否和我一样呢,写了很多控制台程序,特别熟悉cout、main函数等等。
但是你同样也听说过win32 api !!当在你的控制台应用程序中写下某个api函数的时候,你也许会窃喜api函数带来的方便。但是当你编译代码的时候,编译器会无情的通知你“不能识别XX标识符”。
所以,从现在开始我的blog.
你兴致勃勃的打开vs2010,选择“文件”-》“新建”-》“项目”,你会看到如下:
正如你所见到的,有一个win32控制台应用程序,有一个win32项目。有何区别呢?
控制台应用程序运行就是dos的界面
项目一般采用了可视化开发 开发出来的东西就像QQ之类的 是有窗口界面的
win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境下运行的应用程序…
win32项目指运行于32位Windows操作系统中的应用程序…包括win32控制台项目…
win32控制台的入口是main,win32项目的入口是WinMain。而程序的入口点是可以重新设置的。我们可以在console应用程序中设置其入口点为WinMain,反之亦然。在下面的代码中会有所展现!
下面代码是一个Win32项目,通过Win32 API函数来读写.ini文件。
#include<Windows.h>
LRESULT CALLBACK WindowProc( _In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam );
int CALLBACK WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{ char szResult[255]; char szDefault[255]; char myPath[] = "D:\\myfile.ini"; GetPrivateProfileString("MySection", "MyKey", "555", szResult, 255, myPath); MessageBox(NULL, szResult, NULL, MB_OK);WritePrivateProfileString("MySection", "Mykey", "shit", myPath); GetPrivateProfileString("MySection", "MyKey", "555", szResult, 255, myPath); MessageBox(NULL, szResult, NULL, MB_OK); return 0;
}
下面是一个完整的Win32项目的代码,其中包括了 WinMain入口点,设计与注册窗口类,创建和显示窗口
更新窗口,消息循环,消息响应
#include <Windows.h>
// 必须要进行前导声明
LRESULT CALLBACK WindowProc( _In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam
); // 程序入口点
int CALLBACK WinMain( _In_ HINSTANCE hInstance, _In_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow )
{ // 类名 WCHAR* cls_Name = L"My Class"; // 设计窗口类 WNDCLASS wc = { }; wc.hbrBackground = (HBRUSH)COLOR_WINDOW; wc.lpfnWndProc = WindowProc; wc.lpszClassName = cls_Name; wc.hInstance = hInstance; // 注册窗口类 RegisterClass(&wc); // 创建窗口 HWND hwnd = CreateWindow( cls_Name, //类名,要和刚才注册的一致 L"我的应用程序", //窗口标题文字 WS_OVERLAPPEDWINDOW, //窗口外观样式 38, //窗口相对于父级的X坐标 20, //窗口相对于父级的Y坐标 480, //窗口的宽度 250, //窗口的高度 NULL, //没有父窗口,为NULL NULL, //没有菜单,为NULL hInstance, //当前应用程序的实例句柄 NULL); //没有附加数据,为NULL if(hwnd == NULL) //检查窗口是否创建成功 return 0; // 显示窗口 ShowWindow(hwnd, SW_SHOW); // 更新窗口 UpdateWindow(hwnd); // 消息循环 MSG msg; while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } return 0;
}
// 在WinMain后实现
LRESULT CALLBACK WindowProc( _In_ HWND hwnd, _In_ UINT uMsg, _In_ WPARAM wParam, _In_ LPARAM lParam
)
{ switch(uMsg) { case WM_DESTROY: { PostQuitMessage(0); return 0; } } return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
Hey,别搞错了Win32项目和Win32控制台程序相关推荐
- Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系
Win32控制台应用程序,Win32项目,MFC应用程序的区别与联系 Win32控制台程序 初始化代码模板以Main为程序入口,默认情况下,只链接C++运行时库和一些核心的Win32库,链接器subs ...
- win32项目和win32控制台程序的区别
回答1: 1.win32应用程序是指窗口类的,像QQ之类的,有图形化界面,而控制台是指运行在黑框下的,像cmd之类的: 2.win32控制台项目指在32位Windows命令提示符(即所谓的dos)环境 ...
- VS中项目属性win32 application和win32 console application的切换
菜单中选择项目->属性弹出属性配置窗口 1.C++->预处理器: 预处理器定义: WIN32项目为WIN32;_DEBUG;_CONSOLE: 控制台项目为WIN32;_DEBUG;__W ...
- cocos2d-x 菜鸟实习生学习篇(十) win32项目移植到安卓
再两天就过年啦,这篇博客应该是今年的最后一篇吧.在此提前恭贺大家....元宵节快乐!!!相信很多大牛说的都是新年快乐之类的,但是咱不能跟他们一样啊,咱虽然博客不咋的,但是肯定要体现出自己的身份跟内涵. ...
- 【MFC系列2】Win32项目转换为MFC项目
关注公号[逆向通信猿]更精彩!!! 一.MFC的组成 a)必须有一个CWinApp的派生类: b)必须用派生类在全局定义一个对象theApp; c)在派生类中必须重写InitInstance虚函数: ...
- Visual Stutio中win32控制台应用程序、win32项目、MFC项目的区别:
我的理解,我首先把这几个货分为两大类:第一类包括win32控制台应用程序,第二类就是剩下那俩货.而剩下那俩货又有一个包含关系,即win32项目包含mfc.(我个人是这个区分的.) 一. 区别: (1) ...
- VS2010 win32项目windows窗体程序 向导生成代码解析
目录: 1.Win32项目的windows窗体程序的向导生成了如下代码 2.手工生成代码如下 3.当消息队列中没有消息需要处理,我们可以利用这段时间处理我们自己的任务 1.Win32项目的window ...
- 文因互联 CEO 鲍捷:确保搞砸人工智能项目的十种方法
做成一件事儿不容易,而坑恒在. 鲍捷博士于5月10日在将门创投的线上 talk 中盘点了人工智能项目的大坑小坑,选出了看上去非常反常识的十个经典坑. 这是一篇大实话合集,但别绝望,最后将会放出从二十年 ...
- 【Win32】初识Win32编程
补发:发表于2021-11-08 忘了同步到CSDN上了 链接 Windows编程 应用程序分类 控制台程序Console DOS程序,本身没有窗口,通过Windows DOS窗口执行.(DOS是操作 ...
最新文章
- php 取绝对值(php自带函数可以直接取)
- android 获取手机SD卡和手机的内部存储
- SVM的升维解决线性不可分
- BZOJ2956 (模积和)
- spark on yarn的未解之谜
- 【HDU - 2899】 Strange fuction(二分或三分,求导)
- react开发_我如何在#100DaysOfCode挑战期间找到React开发人员的工作
- php 模拟客户端访问,PHP通过伪造和模拟客户端COOKIE登陆来采集抓取远程网址
- 分治,递归,贪心算法,动态规划的关系
- [转载] Python—urllib模块
- 微信小程序开发实战——模块化
- android mp4转mp3格式转换,实现快速将MP4转MP3格式的完美攻略
- QT 如何在其他类中修改UI控件的属性?
- C++那些事之ADL
- photo技能大全,想学ps的来看看
- 2021-3-2打砖块游戏,轮播图,swiper,自执行函数
- 虚拟机VMware中Linux联网
- 当年明月《明朝那些事儿》读书笔记
- 运放--单电源半波精密整流
- 软件测试基础知识面试题目(25题英文题目)
热门文章
- 我们为什么要读书?被这位日本女老师的回答深深震撼
- 物联网工程实践日报表11
- 每日一题-61(每位学生的最高成绩)
- 【视频】Python和R语言使用指数加权平均(EWMA),ARIMA自回归移动平均模型预测时间序列...
- java当前时间获取
- 基于JAVA住房公积金筹集子系统的网站系统计算机毕业设计源码+系统+数据库+lw文档+部署
- 你的先进性体现在哪里?
- 用Turtle画棒棒糖
- Underlay和Overlay网络是什么
- 华为删除dhcp地址池_干货|什么是DHCP?这些我们应该知道