第二章 Unicode简介 1,Windows通过双字节技术DBCS解决这个问题,代码页定义不同的字符集,称为ANSI字符集,比如日文为CP932,韩文为CP949,繁体中文为CP950,简体中文为CP936 2,Unicode使用双字节,并且为一个字符集,解决二义性的问题 3,Unicode宽字符使用wchar_t声明,为两字节,并且字符或者字符串常量前应该加L 4,为了统一源代码中不同字符集的字符处理函数,使用头文件tchar.h 如:_tcslen,_tprintf,以及__T(),_T(…
大家好,非常高兴和大家一起分享Windows开发心得,Windows已经诞生很多年了,一直因为它的简单易用而深受欢迎,相信很多人在使用Windows的时候,一定有这样一个想法:希望自己将来可以写一个很受欢迎的Windows程序,像QQ,迅雷,鲁大师一样,深受大家喜爱的软件,无论你的初衷是什么,我都会满足你的愿望,用最简单易懂的方式,带领大家走入Windows编程的魔幻世界,为大家插上理想的翅膀. 今天,我们先来简单介绍一下Windows程序设计的相关知识,为后面内容的介绍奠定基础.在Window…
一.Win32 API /******************************************************************** created: 2014/04/14 15:30 filename: WinMain.c author: Justme0 (http://blog.csdn.net/justme0) purpose: Win32 API ********************************************************…
刚开始学习Windows程序设计,磕磕碰碰,先做个小笔记缓缓神经,主要是将MessageBox这个Windows API函数的. MessageBox函数是许多人刚开始学习Windows程序设计或者是Windows API遇到的第一个内置函数,这个函数使用的方式是: MessageBox(NULL, TEXT("弹出框内容"), TEXT("标题"), MB_OK); 初次之外,它还有几个姐妹: MessageBoxA(NULL, "弹出框内容"…
Windows程序设计(第5版) windows程序需要调用API. 第一个Windows程序 /*HelloMsg.c -- Displays "Hello World!" in a message box*/ #include <Windows.h> int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int n…
CPU保护模式与Windows系统 1 Windows多任务 2 虚拟内存 3 处理器的特权级别 内核对象 1 内核对象有什么用 2 对象句柄 3 使用计数 1 CPU保护模式与Windows系统 80386的CPU有3种工作模式:实模式.保护模式.和虚拟86模式.其中实模式和虚拟86模式是为了兼容8086CPU而设置的.保护模式是其主要的工作模式.Windows操作系统就运行在保护模式,而保护主要指的就是对存储器(内存和寄存器)的保护,意味着对存储器的读写是受限制的. 1.1 Windows多…
坚持与妥协 从学程序的第一天老师就给我们说源代码应该使用utf8保存.因为先入为主,"源代码应该使用utf8"的观念已经在"学院派"出身的程序员脑子里根深蒂固.如果您固执地坚持自己的信仰,坚信源代码应该并且只应该用utf8保存,决不向任何工具或者人妥协!那么恭喜您,可以看看这个文章. VS2013及以前 utf8是unicode的一种实现方式.windows95及以前,还没有unicode,更没有utf8.所以在windows95及以前微软自己定义了一套解决多国语言…
本文整体目录和绝大部门内容来自 [鸡啄米网站]的MFC系列文章,欢迎支持原创 (一)VS2010/MFC编程入门之前言 VC++全称是Visual C++,是由微软提供的C++开发工具,它与C++的根本区别就在于,C++是语言,而VC++是用C++语言编写程序的工具平台 VC++不仅是一个编译器更是一个集成开发环境,包括编辑器.调试器和编译器等,一般它包含在Visual Studio中 因为VC++ 6.0以后的版本不再有独立的安装程序,所VC++ 6.0以后的版本不叫VC++ 7.0等等,而是…
Windows编程中UNICODE和_UNICODE定义问题 先转一篇文章: 初学Windows SDK编程时碰到过这个问题,相信很多初学Windows编程的人也都碰到过,后来慢慢搞明白些了,但有时别人问到自己也说不太 清楚.今天借此机会,我也好好整理一下自已的思路,用下面这篇文章详细点地解释下这个问题,希望能帮助到有此疑问的朋友. UNICODE和_UNICODE并不是在头文件中"定义"的,而是程序员通过以下方法之一定义的: 1.用代码定义的,就像你上面的一样: 2.编译选项中指定.…
最近一直在看Charlse Petzold的<Windows程序设计>,作为一个新得不能再新的新手,只能先照着书的抄抄源码了,之前的例子一直都很正常,但昨天遇到一个很诡异的BUG. 先看实例源码吧: /*----------------------------------------------------------------- ENVIRON.C -- Environment List Box (c) Charles Petzold,1998 Copy by XXXX,2015/1/26…
#include <windows.h> #include "resource.h" LRESULT CALLBACK MyWndProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter LPARAM lParam // second message parameter ); int WINAPI WinMai…
2014.05.06 新建一个visual C++ -- 常规 -- 空白 的项目,用.c后缀名指定这是一个用C语言来写的windows项目.和C语言的hellworld程序做了一个比较,按照windows程序设计规定的入口函数名称.函数参数.参数传递方式等写个入口函数,并弹出一个MessageBox.…
书签:另外跳过的内容有待跟进 __________________学习资源: <Windows程序设计第5版珍藏版> __________________知识基础支持: _________________ 跳过的内容: 1. ______________知识要点: 1: ______________注意事项: 1. ______________ 不理解知识点: 1. ______________ 进度: 1.2013-06-15 第8章 计时器 结束,接下来调整一下方向,先不看第9章子窗口控件…
本人近期在网上找到了<MFC Windows程序设计>第二版的书内程序的源代码,特意上传CSDN上面,供学习MFC的程序猿们免费下载. 源代码下载: http://download.csdn.net/detail/bboot/7486011 还有该书的电子版下载地址: http://download.csdn.net/detail/bboot/7490781…
看windows程序第五章GDI编程部分.一直卡壳在这里了. 下面我来说下自己的想法.看是否对您有帮助. 首先我们来看一个图. SetPolyFillMode(ALTERNATE);  // 系统默认就是这种填充模式 如图所示:数字代表绘制图形点的先后次序. 现在.我们先从外面假设来一条射线,(当然了.我看到很多文章.说的都是屏幕水平方向的扫描线.) 对于这种模式.射线穿过奇条边框线时,则填充该边框线区域,穿过偶数条边框线时,则不填充. 大家对照上图的射线.很简单的就理解了“ALTERNATE”…
导读 1.用VS创建一个Windows Forms程序 2.分析上面的程序 3.Mediator pattern(中介者模式) 4.卡UI怎么办——BackgroundWorker组件 用VS创建一个Windows Forms程序 博主应为项目需要用的VS2005,所以这个系列的Windows Forms 特指Windows Forms 2.0. 打开VS2005 –> 建立 Windows应用程序,过程截图如下(其实这种简单的步骤,做C#开发都会) 拖拽一个Button 和 TextBox 控…
愉快的开始 让编程改变世界 Change the world by program  参考教材 购买链接:Windows程序设计(第5版)(珍藏版)(附CD-ROM光盘1张)  学习环境 视频演示:WIN8 + VS2013Express 最低要求:XP + VC6 学习要求 1. 需要有C语言的基础: 2. 知道或者听说过数据结构是编程的内功心法,对于写出好程序很重要: 3. 懂得光看不练等于零这个道理. 教学安排 0. 课后作业 1. 扩展阅读 2. 知识点备忘 3. 典型案例分析 4. 阶…
学习Windows程序设计也有一些时间了,为了记录自己的学习成果,以便以后查看,我希望自己能够坚持写下一系列的学习心得,对自己学习的内容进行总结,同时与大家交流.因为刚学习所以可能有的地方写不不正确,希望大家能够指出. 在学习了一定的Windows API后我决定进入到一些基础的学习,希望能够学习一些原理性的知识,能够做到知其然的同时知其所以然.为了达到这个目的,这段时间我学习了一些计算机的基础知识,在这写下这篇博客,总结一下. 在早期的16位8086CPU中我们使用段与段内的偏移偏移的方式寻址…
Windows程序设计之前 1 做什么 2 解决什么问题 3 有哪些资源 在开始真正的编程之前,需要了解要做的事情是什么,要解决的解决的问题是什么,有哪些资源可以使用. 1 Windows程序设计之前 1.1 做什么? 我们要在Windows平台上来写程序,使用Win32 API不是唯一的方法,但确是必经之路. 1.2 解决什么问题 多数人开始接触Windows编程时,是从Visual Basic开始的,然后MFC,虽然写一些软件和程序,但可能还不清楚程序是如何运行的.从而造成程序的维护特别难.…
在看雪论坛上看到的一个帖子,很喜欢,转载一下.原文地址:http://bbs.pediy.com/showthread.php?t=138630哆啦A梦是画出来的,不知道作者算这些坐标位置算了多久,真的很犀利.记得原来看<Windows程序设计>的时候,每次看到GDI都不是很理解,也没有仔细去研究.现在编程也很少与GDI打交道,还是等以后有空了在深入了解一下吧.把这个代码转载一份到博客,以后再回头研究一下.顺便贴一下程序运行后的截图:(很酷吧~~~)字数补丁~代码疯子~程序人生~字数补丁~代码…
/*------------------------------------------------------------- screensize.cpp -- Displays screen size in a message box (c) Seamanj, 2013/6/26 -------------------------------------------------------------*/ #include <windows.h> #include <tchar.h&…
原文:RabbitMQ入门教程(二):简介和基本概念 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/vbirdbest/article/details/78577043 分享一个朋友的人工智能教程.比较通俗易懂,风趣幽默,感兴趣的朋友可以去看看. 一:简介 RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端.用于在分布式系统中存储转发消息,在易用性.…
<Windows程序设计>(第五版)(美Charles Petzold著) #include<windows.h> LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,PSTR szCmdline,int iCmdShow) //第一个参数是实例句柄,在Windows程序中,句柄就是一个数值,程序里用它来标志…
2.2 宽字符和C语言 2.2.2 更宽的字符 在C语言中的宽字符正是基于short型数据的, 这一数据类型在头文件WCHAR.H中的定义为: typedef unsigned short wchar_t ; 所以C语言中的宽字符wchar_t数据类型与一个无符号短整形unsigned short一样, 都是16位宽. 例如: wchar_t c = 'A' ; 在计算机中保存为0x0041,显示为0x41 0x00 2.2.3 宽字符库函数 在使用strlen计算宽字符长度时: #includ…
Unicode的解救方案 让编程改变世界 Change the world by program 内容节选: 早期的Windows也是使用ASCII字符集,ASCII好处多多,但ASCII的第一个字母A代表American美国,严重的突出了它的局限性. ASCII是一个真正的美国标准,它并不能满足其他国家的要求,因为ASCII是使用7位,一个字节不到的空间来存放字符,2的7次方一共可以存放128个字符,英语里26个字母大小写共52个加上标点符号.数字和一些控制符号,128个那肯定是足够的. 但是…
在编写窗口程序时主要是5个步骤,创建窗口类.注册窗口类.创建窗口.显示窗口.消息环的编写.对于这5个步骤为何要这样写,当初我不是太理解,学习到现在有些问题我基本上已经找到了答案,同时对于Windows对于窗口的管理机制有了更深的认识,下面我通过问答的方式,一一写出自己之前的疑惑. 问题一.窗口类与窗口之间有何关系? 答:窗口类与窗口就好像C++中类与对象的关系,窗口是窗口类的具体表现,在注册窗口类成功后,系统并没有创建窗口,只是分配的相应的存储空间存储了我们为窗口类填写的一些信息.只有调用Cre…
Unicode转多字节:WideCharToMultiByte 多字节转Unicode:MultiByteToWideChar 代码演示 #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { BOOL b; WCHAR szWString[] = L]; CHAR szAString[] = ]; TCHAR…
Unicode和多字节 Unicode是宽字符 多字节是窄字符 类型 变量类型 初始化方式 Unicode LPWSTR L"string" 多字节 LPSTR "string" 根据开发环境的设置自动适应 LPTSTR TEXT("string") 代码演示 #include <windows.h> int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, L…
创建进程 1 进程和线程 2 应用程序的启动过程 3 CreateProcess函数 4 实例 3 创建进程 3.1 进程和线程 进程通常被定义为一个存在运行的程序的实例.进程是一个正在运行的程序,它拥有自己的虚拟地址空间,拥有自己的代码.数据和其他系统资源.一个进程也包含一个或者多个运行在此进程内的线程. 程序是指一连串的静态的指令,而进程是一个容器,它包含了一系列运行在这个程序实例上下文中的线程使用的资源. 每个进程至少拥有一个在它的地址空间中运行的线程.操作系统创建进程后,会创建一个线程执…
MFC架构组成 1.CWinApp的派生类 2.必须在全局区定义一个派生类的对象 3.在CWinApp派生类内必须要有InitInstance虚函数的重写函数 在MFC软件工程以App类中的InitInstance函数作为主函数连接MFC的平台使用static Library或shared DLL都可以 消息映射机制 1.必须使用类向导建立一个窗口类(Cwnd)的派生类 2.必须使用派生类来定义对象,用来接收用户的界面操作消息.在窗口派生类中,每一种消息都与一个类成员函数关联 3.消息映射函数,…