随笔分类 -  vc++

c/c++内存释放知识总结
摘要:基础知识:五大内存分区 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。(new char; delete char;new char2[2]; delete[] char2;) 自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。 全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在 阅读全文

posted @ 2011-04-12 23:26 chuncn 阅读(19668) 评论(0) 推荐(2) 编辑

win32中GBK、UTF8的互转
摘要:#include "stdafx.h"#include <stdio.h>#include <windows.h>//GBK编码转换到UTF8编码int GBKToUTF8(unsigned char * lpGBKStr,unsigned char * lpUTF8Str,int nUTF8StrLen){wchar_t * lpUnicodeStr = NULL;int nRetLen = 0;if(!lpGBKStr) //如果GBK字符串为NULL则出错退出return 0;nRetLen = ::MultiByteToWideChar(CP 阅读全文

posted @ 2011-04-12 17:22 chuncn 阅读(8012) 评论(1) 推荐(0) 编辑

c++ zlib(qt)压缩与解压缩
摘要:#include <QtCore/QCoreApplication>#include "zlib.h"#include "stdio.h"#include <iostream>using namespace std;#define MaxBufferSize 999999void Test1();void Test2();int main(int argc, char *argv[]){ QCoreApplication a(argc, argv); //Test1(); Test2(); return a.exec();}//c 阅读全文

posted @ 2011-03-23 14:20 chuncn 阅读(14084) 评论(3) 推荐(1) 编辑

c/objective-c/win32/mfc/qt 异常处理与总结
摘要:实际异常一:libcpmtd.lib(xmbtowc.obj) : error LNK2001: unresolved external symbol __CrtDbgReportDebug/B机.exe : fatal error LNK1120: 1 unresolved externals处理 阅读全文

posted @ 2010-12-24 23:24 chuncn 阅读(10327) 评论(2) 推荐(0) 编辑

MFC/Win32中使用GDI+
摘要:一、MFC中使用GDI+的方法:1、包含头文件与库在stdafx.h中加入以下三行代码:#include "gdiplus.h" using namespace Gdiplus; #pragma comment(lib, "gdiplus.lib")2、安装GDI+在使用GDI+之前要进行安装,否则程序不会报错,但绘图不成功。安装方法如下:GdiplusStartupInput gdiplusStartupInput;ULONG_PTR gdiplusToken;GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);安装完成后就可以 阅读全文

posted @ 2010-12-17 00:18 chuncn 阅读(4205) 评论(0) 推荐(0) 编辑

C++中使用内存映射文件处理大文件
摘要:引言  文件操作是应用程序最为基本的功能之一,Win32 API和MFC均提供有支持文件处理的函数和类,常用的有Win32 API的CreateFile()、WriteFile()、ReadFile()和MFC提供的CFile类等。一般来说,以上这些函数可以满足大多数场合的要求,但是对于某些特殊应用领域所需要的动辄几十GB、几百GB、乃至几TB的海量存储,再以通常的文件处理方法进行处理显然是行不通的。目前,对于上述这种大文件的操作一般是以内存映射文件的方式来加以处理的,本文下面将针对这种Windows核心编程技术展开讨论。  内存映射文件  内存映射文件与虚拟内存有些类似,通过内存映射文件可以 阅读全文

posted @ 2009-04-15 09:33 chuncn 阅读(13197) 评论(0) 推荐(3) 编辑

C++通过http下载二进制文件
摘要:最近做了个动态库的升级程序,需要到服务器检查是否有新版本的动态库如果有的话就下载下来升级。这里与大家分享我的测试下载该二进制文件的过程。如下: #include #include #include #define MAXBLOCKSIZE 1024 void download(const char*); int main(int argc, char* argv[]){ if(argc > 1){... 阅读全文

posted @ 2009-04-15 09:32 chuncn 阅读(2833) 评论(0) 推荐(1) 编辑

Win32中精确计时器(微秒级)
摘要:#pragma onceclass StopWatch{private: int _freq; LARGE_INTEGER _begin; LARGE_INTEGER _end;public: float costTime; //用时,*1000000 = 微秒, 1秒=1000000 StopWatch(void) { LARGE_INTEGER tmp; QueryPerformanceFrequency(&tmp); _freq = tmp.QuadPart; costTime = 0; } ~StopWatch(void) { } void Start(... 阅读全文

posted @ 2009-03-25 09:10 chuncn 阅读(5144) 评论(0) 推荐(0) 编辑

MFC基本常用控件基本用法
摘要:4.1 Button 按钮窗口(控件)在MFC中使用CButton表示,CButton包含了三种样式的按钮,Push Button,Check Box,Radio Box。所以在利用CButton对象生成按钮窗口时需要指明按钮的风格。 创建按钮:BOOL CButton::Create( LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, C... 阅读全文

posted @ 2009-03-18 22:12 chuncn 阅读(10618) 评论(0) 推荐(0) 编辑

CString
摘要:目录 1、CString 对象的连接 2、格式化字符串 3、CString 型转化成 int 型 4、CString 型和 char* 类型的相互转化 5、CString 型转化成 BSTR 型 6、BSTR 型转化成 CString 型 7、VARIANT 型转化成 CString 型 8、载入字符串表资源 9、CString 和临时对象 10、CString 的效率 ... 阅读全文

posted @ 2009-03-16 11:08 chuncn 阅读(426) 评论(0) 推荐(0) 编辑

重新认识fprint,sprint
摘要:#include int fprintf(FILE *stream, const char *format, ...); 函数 fprintf()以format串说明的格式向stream指向的流中写变元表中变元的内容,返回值是实际写出的字符数,如出错,则返回负值。 Example /*... 阅读全文

posted @ 2009-03-15 02:27 chuncn 阅读(1634) 评论(0) 推荐(0) 编辑

C file文件基本知识
摘要:文件 文件的基本概念 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的,在使用时才调入内存中来。从不同的角度可对文件作不同的分类。从用户的角度看,文件可分为普通文件和设备文件两种。 普通文件是指驻留在磁盘或其它外部介质上的... 阅读全文

posted @ 2009-03-15 02:21 chuncn 阅读(1392) 评论(0) 推荐(1) 编辑

C++文件流
摘要:在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符: 1、插入器(>) 从流中输入数据。比如说系统有一个默认的标准输入流(cin),一般情况下就是指的键盘,所以,cin>>x;就表示从标准输入流中读取一个指定类型(即变量x的类型)的数据。 在C++中,对文件的操作是通过stream的子类... 阅读全文

posted @ 2009-03-15 02:20 chuncn 阅读(494) 评论(0) 推荐(0) 编辑

一个封装文件操作和目录操作的类
摘要:经常在项目中遇到文件和目录操作。拷贝,删除,移动,最讨厌的可能就是枚举了。 这里提供一个封装文件和目录的操作类。 此类封装了一些高级的文件和目录操作。例如删除、建立、拷贝、移动、枚举文件和目录。 所有的错误处理都内置了。并且用bool值类型来表示其成功与否。如果失败,可以调用GetErrorMessage 函数得到CString类型的错误信息。 用法:这个类只需要建立CDiskObj... 阅读全文

posted @ 2009-03-13 21:25 chuncn 阅读(933) 评论(0) 推荐(0) 编辑

同一个端口收发数据
摘要:用同一个端口收发数据:1. 可以用raw和udp tcp, 每个client连上来, 就开了一个新的端口给此client。raw通过ip来区分,那样端口可以一样,不过要保证这些client的ip不一样 还可以使用mac来区分client,那样ip,端口都不需要理会了具体实现方法,端口重用。setsockopt(。。。SO_REUSEADDR。。。) 阅读全文

posted @ 2009-03-13 21:17 chuncn 阅读(1117) 评论(0) 推荐(0) 编辑

socket异步笔记
摘要:在网络通讯中,由于网络拥挤或一次发送的数据量过大等原因,经常会发生交换的数据在短时间内不能传送完,收发数据的函数因此不能返回,这种现象叫做阻塞。 Winsock对有可能阻塞的函数提供了两种处理方式:阻塞和非阻塞方式。 阻塞模式 在阻塞方式下,收发数据的函数在被调用后一直要到传送完毕或者出错才能返回。在阻塞期间,被阻的函数不会断调用系统函数GetMessage()来保持消息循... 阅读全文

posted @ 2009-03-12 02:23 chuncn 阅读(804) 评论(0) 推荐(0) 编辑

多线程下MFC网络编程CSock类
摘要:UINT ReceiverThreadProc(LPVOID pParam)//receive thread{ if (!AfxSocketInit()) { AfxMessageBox("应用程序没有调用 WSAStartup,或者 WSAStartup 失败"); return FALSE; ... 阅读全文

posted @ 2009-03-12 02:11 chuncn 阅读(2107) 评论(0) 推荐(0) 编辑

Mfc网络编程
摘要:Udp //server CSocket t; t.Create(2000,SOCK_DGRAM,"127.0.0.1"); t.Bind(2000,"127.0.0.1"); char buf[1024]="hi1"; t.SendTo(buf,strlen(buf),2000,"127.0.0.1",0); //client CS... 阅读全文

posted @ 2009-03-12 02:10 chuncn 阅读(699) 评论(0) 推荐(0) 编辑

VC下用MFC类实现网络编程
摘要:随着计算机网络化的深入,计算机网络编程在程序设计的过程中变得日益重要。许多文章都曾经介绍过用VC++进行Socket编程的方法。但由于都是直接利用动态连接库wsock32.dll进行操作,实现比较繁琐。其实,VC++的MFC类库中提供了CAsyncSocket这样一个套接字类,用它来实现Socket编程,是非常方便的。 客户端 创建一个Dialog Based项目:CSockClient。设... 阅读全文

posted @ 2009-03-12 02:07 chuncn 阅读(680) 评论(0) 推荐(0) 编辑

MFC常用的类详细介绍
摘要:常用的MFC类 CRuntimeClass结构 在CRuntimeClass结构中定义了类名、对象所占存储空间的大小、类的版本号等成员变量及动态创建对象、派生关系判断等成员函数。每一个从CObject类派生的类都有一个CRuntimeClass结构同它关联,以便完成在运行时得到对象的信息或基类的信息。 要使用CRuntimeClass结构,必须结合使用RUNTIME_CLASS()宏和其他有关... 阅读全文

posted @ 2009-03-12 01:59 chuncn 阅读(1703) 评论(0) 推荐(0) 编辑

导航