![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
windows
文章平均质量分 78
bigapple88
这个作者很懒,什么都没留下…
展开
-
WinCE申请大容量物理内存
<br />申请大容量的物理内存看起来不是难事。这里的大容量是指几十MB甚至更多的物理内存。对于C++程序员来说可能平时习惯了使用"new"操作符来实现。我也是这样。使用"new"非常简单,申请之后只需判断返回的指针是否是空即可。在其它的Windows操作系统上的确不需要在申请大容量物理内存上过多考虑。但是在Windows CE上就不同了。如果只用"new"就能搞定,那就太省事了。<br />不知道Windows CE下软件开发者是否遇到过这种情况,如果使用"new"申请超过30MB的物理内存,那么返回的一转载 2010-06-30 11:13:00 · 934 阅读 · 0 评论 -
OnEraseBkgnd与onpaint的联系(转载)
<br />题是这样产生的.在OnEraseBkGnd中,如果你不调用原来缺省 <br />的OnEraseBkGnd只是重画背景则不会有闪烁.而在OnPaint里面, <br />由于它隐含的调用了OnEraseBkGnd,而你又没有处理OnEraseBkGnd <br />函数,这时就和窗口缺省的背景刷相关了.缺省的 <br />OnEraseBkGnd操作使用窗口的缺省背景刷刷新背景(一般情况 <br />下是白刷),而随后你又自己重画背景造成屏幕闪动. <br />另外一个问题是OnEraseBkG转载 2010-10-15 12:01:00 · 718 阅读 · 0 评论 -
关于非模态对话框的销毁(转)
<br />非模态对话框相对于模态对话框,他的创建和销毁过程和模态对话框有一定的区别<br />先看一下MSDN的原文:<br />When you implement a modeless dialog box, always override the OnCancel member function and call DestroyWindow from within it. Don’t call the base class CDialog::OnCancel, because it calls En转载 2010-12-23 16:14:00 · 740 阅读 · 0 评论 -
fread没有读完整个文件
<br />最近写了一个读unicode文本的函数,是用fread函数读,但有时候不能读完,后来网上查了下,见下文:<br />最近写一个程序,发现用fread读“.dat”文件时不能读完整个文件,后来用hex格式观察读文件退出位置的数字,才发现只要是读到0x1A时,fread就认为结束!后来看了MSDN后知道用text模式打开文件时,系统默认CTRL+Z为文件结束符,而0x1A刚好就是CTRL+Z的ASCII码。另外在另一个文章里面说到如果遇到“/r/n”,也将被映射为“/n”。因此如果是读普通数据而非文原创 2010-12-22 14:46:00 · 4779 阅读 · 0 评论 -
多线程绘图
<br />一.问题的提出 <br /> 微软资源管理器一般来说应该算是一个非常优秀的软件,但是其微软资源的图像浏览功能应该来说是有些问题的(可能是我的windows版本比较老(windows2000),且不说JPEG的BUG,就他采用的单线程读图应该就算是不合理之处,为什么这么说,我们可以做个试验,首先构造一个BMP图像,图像应尽可能大一点,我选择了6146*2048的24位色的图片,大约36M多,当点击此图片后,系统将非常缓慢的显示此图片的预览图,而且无法快速切换至其他文件(可能是我的机器太慢转载 2010-12-27 12:23:00 · 4948 阅读 · 0 评论 -
VC中CDC与HDC的区别以及二者之间的转换
<br />微软喜欢将内核对象标识,称为句柄。应该都是32位或者64位整数<br /> <br />HINSTANCE:进程实例或者句柄<br />HANDLE: 文件句柄<br />HWND: 窗口的句柄,用来标识窗口对象<br />HPEN: 画笔句柄,用来标识画笔对象<br />HBITMAP: 位图句柄<br />HDC: 设备环境句柄 <br /><br />CWnd: 是提供窗口处理的一个MFC封装基类,<br转载 2010-12-27 15:20:00 · 1366 阅读 · 0 评论 -
线程本地存储 __declspec(thread)
<br />线程本地存储(Thread Local Storage, TLS)简单分析与使用<br /> 在多线程编程中, 同一个变量, 如果要让多个线程共享访问, 那么这个变量可以使用关键字volatile进行声明; 那么如果一个变量不想使多个线程共享访问, 那么该怎么办呢? 呵呵, 这个办法就是TLS, 线程本地存储. 它的使用非常之简单, 只要对变量的声明使用__declspec(thread)就OK了. 下面我来举一个例子, 结合注释, 相信大家马上就能知道其”奥秘”了.<br /> #incl转载 2011-01-04 18:34:00 · 2182 阅读 · 0 评论 -
MultiByteToWideChar,字符编码转换
<br />MultiByteToWideChar和<br />WideCharToMultiByte用法详解<br />函数原型:<br />int WideCharToMultiByte( <br />UINT CodePage, <br />DWORD dwFlags, <br />LPCWSTR lpWideCharStr, <br />int cchWideChar, <br />LPSTR lpMultiByteStr, <br />int cbMultiByte, <br />LPCSTR l原创 2010-11-11 11:10:00 · 6822 阅读 · 1 评论 -
CHM格式解析
<br />【摘要】<br />CHM格式有一个初始化头,占38H字节,后面是header section和到正文 段的偏移量。加在一起,这些被称为文件头。<br />header section一共有两个section,一个是文件目录,另一个包含着文件长度和一些未知信息。<br />初始化头:<br />前四个字节为ITSF,第二个双字为版本信息,第三双字是文件头的总长度,第四双字值为1,第五双字是一个时间记录,(第一个字节是MSB,第二个字节是 fractional seconds(second byt转载 2010-11-16 19:44:00 · 2984 阅读 · 0 评论 -
WinCE 5.0 WIFI 无线网卡的配置和建立连接
一、枚举系统中可用的无线网络设备 下面的函数可以枚举出系统中所有可用的无线网卡设备的GUID,为了简化,我选择第一块可用的无线网卡来操作 BOOL GetFirstWirelessCard(PTCHAR pCard){ if (!pCard) { return FALSE; } INTFS_KEY_TABLE IntfsTable; IntfsTable.dwNumIntfs = 0; IntfsTable.pI转载 2011-02-16 10:33:00 · 1095 阅读 · 0 评论 -
基于Windows CE的通信技术
<br /><br />摘要:讨论Windows CE所支持的两种基本通信技术,即串行通信和网络通信,并通过Win32 API描述了基于Windows CE的平台如何建立各种串行连接和网络连接。对于各种连接实现途径,指出其与桌面计算机的区别。<br />1 Windows CE通信简介<br /> Windows CE是一个面向移动计算和嵌入式应用的操作系统,其突出的优点是模块化、可定制、完备性、实时性、通信功能强大和基于Win32应用程序编程接口。目前,随着运行于Windows CE平台的手持电脑(转载 2011-02-16 10:40:00 · 1266 阅读 · 0 评论 -
用InternetOpen下载小文件 vc c++
<br /><br />文章改自:<br />http://hi.baidu.com/hacknothack/blog/item/4ca77710bc8e97fdc3ce79ad.html<br />使用vc6.0通过<br /> view plaincopy to clipboardprint?#include "stdafx.h" #include<windows.h> #include<wininet.h> #include<iostream.h> #pragma comment(lib,"w转载 2011-02-16 11:19:00 · 1343 阅读 · 0 评论 -
CE获取Wifi的设备名、连接状态和信号强度
CE获取Wifi的设备名、连接状态和信号强度 CE获取Wifi的设备名、连接状态和信号强度Note:需CE4.0或更高版本(兼容NDIS5.1)支持一、加入头文件#include #include #include 二、Attach to NDISUIOHANDLE hNdis = ::CreateFile( NDISUIO_DEVICE_NAME, GENERIC_ALL, 0, NULL, OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL|FILE_FLAG_OV原创 2011-02-16 19:21:00 · 1675 阅读 · 0 评论 -
使用PostThreadMessage在Win32线程间传递消息
<br />PostThreadMessage的原型是这样的<br />BOOL PostThreadMessage( DWORD idThread,<br /> UINT Msg,<br /> WPARAM wParam,<br /> LPARAM lParam<br />);<br /><br />PostThreadMessage可以用于线程之间的异步通讯,因为它不用等待调用者返回,<br />这也许是线程通讯中最简单的一种方法了。<br /><br />但是要注意以下问题<br /转载 2011-02-22 18:01:00 · 710 阅读 · 0 评论 -
CPaintDC, CClientDC与CWindowDC的区别
<br />CClientDC(客户区设备上下文)用于客户区(不包含标题栏、边框)的输出,它在构造函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数。一般在响应非窗口重画消息(如键盘输入时绘制文本、鼠标绘图)绘图时要用到它。用法是:<br />CClientDC dc(this);//this一般指向本窗口或当前活动视图<br />dc.TextOut(10,10,str,str.GetLength());<br />//利用dc输出文本,如果是在CScrollView中使用,还要注意转载 2010-10-15 10:18:00 · 771 阅读 · 0 评论 -
IDR_MAINFRAME字符串资源中各子串的含义
<br />IDR_MAINFRAME字符串资源中各子串的含义<br />IDR_MAINFRAME字符串资源中包含7个子串,分别以/n结束,即如下格式:<br /><windowTitle>/n<docName>/n<fileNewName>/n<filterName>/n<filterExt>/n<regFileTypeId>/n<regFileTypeName>/n<br />(1)CDocTemplate::windowTitle,主窗口标题栏上的字符串,MDI程序不需要指定,将以IDR_MAINF转载 2010-10-14 20:47:00 · 951 阅读 · 0 评论 -
evc4工程移植vs.net2005所碰到的问题积累
<br />[收集自网络] <br />原文:http://hi.baidu.com/copperlee/blog/item/c5c7abdc2a5f9fa3cc116638.html<br />在移植项目前,建议还是看看以下的文章: <br />循序渐进:将 eMbedded Visual C++ 应用程序迁移到 Visual Studio 2005 <br />eMbedded Visual C++ 到 Visual Studio 2005 升级向导(注意其最后一句话:默认情况下,Embedded Vi转载 2010-11-27 10:46:00 · 822 阅读 · 0 评论 -
Unicode 的介绍
Unicode 的介绍1.双字节字符集Windows支持四个不同的双字节字符集:代码页932(日文)、936(简体中文)、949(韩语)和950(繁体汉字)。Unicode是统一的16位系统,这样就允许表示65,536个字符。这对表示所有字符及世界上使用象形文字的语言,包括一系列的数学、符号和货币单位符号的集合来说是充裕的。「宽字符集」。「Unicode中的每个字符都是16位宽而不转载 2010-05-11 14:15:00 · 789 阅读 · 0 评论 -
内存中绘图 Memdc
<br /> <br />CDC MemDC; //首先定义一个显示设备对象,所有的绘制首先绘制到这块内存中<br />CBitmap MemBitmap; //定义一个位图对象<br /><br />//随后建立与屏幕显示兼容的内存显示设备<br />MemDC.CreateCompatibleDC(NULL);<br />MemDC.SetStretchBltMode(HALFTONE);<br />//这时还不能绘图,因为没有地方画<br />//下面建立一个与屏幕显示兼容的位图,至于位图的大小嘛转载 2010-07-07 11:20:00 · 1009 阅读 · 0 评论 -
8位灰度图像BMP的保存
<br />在图像处理中,我们经常需要将真彩色图像转换为黑白图像。严格的讲应该是灰度图,因为真正的黑白图像是二色,即只有纯黑,纯白二色。开始之前,我们先简单补充一下计算机中图像的表示原理。计算机中的图像大致可以分成两类:位图(Bitmap)和矢量图(Metafile)。 位图可以视为一个二维的网格,整个图像就是由很多个点组成的,点的个数等于位图的宽乘以高。每个点被称为一个像素点,每个像素点有确定的颜色,当很多个像 素合在一起时就形成了一幅完整的图像。我们通常使用的图像大部分都是位图,如数码相机拍摄的照片,都转载 2010-07-08 10:29:00 · 3192 阅读 · 1 评论 -
WIN32_FIND_DATA结构
于文件的全部属性信息,总计有以下以下9种:文件的标题名、文件的属性(只读、存档,隐藏等)、文件的创建时间、文件的最后访问时间、文件的最后修改时间、文件大小的高位双字、文件大小的低位双字、保留、保留。在这里只有文件标题名和文件的长度可以通过CFile类比较方便的获得,而对于其他几种属性的获取和设置就无能为力了。 在用findfirst()和findnext()函数去查找磁盘文件时经常使用的转载 2010-05-12 16:31:00 · 570 阅读 · 0 评论 -
EnterCriticalSection和LeaveCriticalSection的用法
<br />线程锁的概念函数EnterCriticalSection和LeaveCriticalSection的用法<br />注:使用结构CRITICAL_SECTION 需加入头文件#include “afxmt.h”<br />定义一个全局的锁 CRITICAL_SECTION的实例<br />和一个静态全局变量CRITICAL_SECTIONcs;//可以理解为锁定一个资源staticintn_AddValue = 0;//定义一个静态的全部变量n_AddValue<br />创建两个线程函数,代码原创 2010-07-14 12:22:00 · 2707 阅读 · 0 评论 -
VC实现BMP位图文件结构及平滑缩放(1)
用普通方法显示BMP位图,占内存大,速度慢,在图形缩小时,失真严重,在低颜色位数的设备上显示高颜色位数的图形图形时失真大。本文采用视频函数显示BMP位图,可以消除以上的缺点。 一、BMP文件结构 1. BMP文件组成 BMP文件由文件头、位图信息头、颜色信息和图形数据四部分组成。 2. BMP文件头 BMP文件头数据结构含有BMP文件的类型、文件大小和位图起始位置等信息。 其结构定义如下:转载 2010-05-20 11:55:00 · 1841 阅读 · 0 评论 -
VC中DDB与DIB位图编程全攻略
1. 基本概念 先来用通俗的语句讲解位图和调色板的概念。 我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)三基色组合而成。针对含有红、绿、蓝色成分的多少,可以对其分别分成0~255个等级,而红、绿、蓝的不同组合共有256×256×256种,因此约能表示1600万种颜色。对于人眼而言,这已经是"真彩色"了。 对每个像素进行了(R,G,B)量化的图像就是位图,其在计算机中转载 2010-05-24 21:14:00 · 1265 阅读 · 0 评论 -
字符编码笔记:ASCII,Unicode和UTF-8
<br />1. ASCII码<br />我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。<br />上个世纪60年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定。这被称为ASCII码,一直沿用至今。<br />ASCII转载 2010-07-20 10:37:00 · 719 阅读 · 0 评论 -
EVC上读取UNICODE 文本
<br /> 近来做的一个项目要做多语言,采用了把语言写到一个文件中的做法,这个文件要用unicode编码保存,等程序启动时,再从unicode文本中读取语言,刚开始在读取文本的时候用fgetws()来读取一行,没想到在EVC上可晕了,读出来的中间都多了1个0,后来就自己封装了个函数来读取一行文本:<br /> <br />#define MAX_TEXT_ITEM 256//共有的文字条目数<br />#define TEXT_ID_LENGTH 5//文字ID字符数<br />#define原创 2010-07-19 16:38:00 · 1046 阅读 · 0 评论 -
VC 动态库创建
<br />一、前言<br /> 自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上 Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中、显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中、Windows编程所需要的大量的API函数也被包含在Kernel DLL中。<br /> 在Windows操作系统中使用DLL有很多优转载 2010-07-22 15:17:00 · 5068 阅读 · 0 评论 -
静态库的使用
<br />1. 如果是用C写的,在头文件中要<br />#ifdef __cplusplus<br />extern "C" {<br />#endif<br /> <br />........<br /> <br />#ifdef __cplusplus<br />}<br />#endif<br /> <br />如果库和调用库的应用程序都是在VC上编译的话,可以不包含上边的部分,但是如果要给其他的工具调用的话就要包含。<br /> <br />2.VC上应用程序链接静态库有3中方法:<br />(1原创 2010-07-22 16:41:00 · 630 阅读 · 0 评论 -
关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
<br />char :单字节变量类型,最多表示256个字符,<br />wchar_t :宽字节变量类型,用于表示Unicode字符,<br />它实际定义在<string.h>里:typedef unsigned short wchar_t。<br />为了让编译器识别Unicode字符串,必须以在前面加一个“L”,定义宽字节类型方法如下:<br /> wchar_t c = `A' ; <br />wchar_t * p = L"Hello!" ; <br />wchar_t a[] = L"H转载 2010-06-01 10:45:00 · 818 阅读 · 0 评论 -
windows消息
createwindow()函数会向回调函数传递一个WM_CREATE消息,在这个消息中附加参数lparam会指向一个CREATESTRUCT结构.这个结构就是由createwindow()函数实参填充了的副本.CREATESTRUCT结构中内容和createwindow()函数实参内容是一样的.typedef struct tagCREATESTRUCT { LPVOID lpCreateParams; HINSTANCE hInstance; HMENU hMenu; HWND原创 2010-08-18 17:35:00 · 901 阅读 · 0 评论 -
WINCE音量调节(适用于智能设备)
<br />在此对作者表示感谢。 在此又保存主要是怕自己忘却了。<br />vs2005上通过。<br />void UpdateVolumeFromRegistry()<br />{<br /> HINSTANCE hLibrary = ::LoadLibrary(_T("coredll.dll"));<br /> <br /> if (NULL == hLibrary)<br /> return; <br /> FARPROC pProc = ::GetProcAddress(hLibrary, _T转载 2010-09-27 17:01:00 · 757 阅读 · 0 评论 -
[转]vc中socket编程步骤
<br />sockets(套接字)编程有三种,流式套接字(SOCK_STREAM),数据报套接字(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。<br /><br />服务器端编程的步骤:<br /><br />1:加载套接字库,创建套接字(WSAStartup()/socket());<br /><br />2:绑定套接字到一个IP地址和一个端口上(bind());转载 2011-02-21 18:40:00 · 635 阅读 · 0 评论