qintangtao

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 31 下一页

2012年12月21日

摘要: C++注册表编程1.基础知识注册表的组织方式跟文件目录比较相似,主要分为根键、子键和键值项三部分,与文件目录对应的话就是根目录、子目录和文件。分别介绍一下这三部分:(1)根键。分为5个,分别为 HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS和HKEY_CURRENT_CONFIG 把它们理解成磁盘的五个分区可以了。(2)子键。可以有多个子键和键值项,就像一个目录中可以有多个子目录和多个文件一样。(3)键值项。可以理解为文件,它由三部分组成,分别为:名称、类型、数据。类型又分... 阅读全文
posted @ 2012-12-21 10:31 qintangtao 阅读(3872) 评论(0) 推荐(1) 编辑

2012年12月20日

摘要: oskycarCCommandLineInfo详解-启动不创建新文档【对单文档有问题?】问:其实这里面还有问题,如果是单文档应用程序,这样做会出错。虽然编译连接都能通过,但是调试运行是到这里提示出错而中断了。错误:在winocc.cpp文件的这句话:ASSERT(::IsWindow(m_hWnd) || (m_pCtrlSite != NULL));处程序中断了。似乎是因为无法创建窗体的原因。后来只能通过:指定启动时打开默认文档才避免了出错。。。如下:cmdInfo.m_strFileName="h.bmp"; //指定默认文件名cmdInfo.m_nShellComma 阅读全文
posted @ 2012-12-20 17:06 qintangtao 阅读(229) 评论(0) 推荐(0) 编辑

2012年12月19日

摘要: L表示long指针,这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用,没有实际意义。即win32中,long,near,far指针与普通指针没有区别,LP 与P是等效的。P表示这是一个指针。T表示_T宏,这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。STR表示这个变量是一个字符串。C表示是一个常量,const。LPTSTR: 如果定义了UNICOD 阅读全文
posted @ 2012-12-19 18:04 qintangtao 阅读(360) 评论(0) 推荐(0) 编辑

摘要: 字符串前面加L表示该字符串是Unicode字符串。_T是一个宏,如果项目使用了Unicode字符集(定义了UNICODE宏),则自动在字符串前面加上L,否则字符串不变。因此,Visual C++里边定义字符串的时候,用_T来保证兼容性。VC支持ascii和unicode两种字符类型,用_T可以保证从ascii编码类型转换到unicode编码类型的时候,程序不需要修改。以下是别人的总结:一、在字符串前加一个L作用: 如 L"我的字符串" 表示将ANSI字符串转换成unicode的字符串,就是每个字符占用两个字节。 strlen("asd") = 3; st 阅读全文
posted @ 2012-12-19 17:58 qintangtao 阅读(268) 评论(0) 推荐(0) 编辑

摘要: 假如现在有一个类型为LPARAM的变量lParam,要将其转化为CString类型,可以:①CString str((char*)lParam); --构造函数②CString str;str=(char*)lParam; --运算符重载③使用CString的格式化函数:CString str;str.format("%s", (char*)iParam);④一个行不通的办法!但是仔细一看却和方法②相差无几。CString str=(char*)lParam; --拷贝构造函数 (此时会编译不成功。提示:“初始化”: 无法从“char *”转换为“ATL::CStringT 阅读全文
posted @ 2012-12-19 16:41 qintangtao 阅读(5927) 评论(0) 推荐(0) 编辑

2012年12月12日

摘要: TcpSrv.cpp#include <Winsock2.h>#include <stdio.h>#pragma comment(lib,"ws2_32.lib")void main(){ //1、初始化套接字库 相当于分配网络资源 WSADATA wsaData; int err = WSAStartup(0x0101, &wsaData); if(err!=0){ return; } if(LOBYTE(wsaData.wVersion)!=1 || HIBYTE(wsaData.wVersion)!=1){ WSACleanup(); 阅读全文
posted @ 2012-12-12 23:30 qintangtao 阅读(534) 评论(0) 推荐(0) 编辑

摘要: class Dog{public:enum Flag{aa=1,bb=2,cc=3};};cout<<Dog::aa<<endl; 阅读全文
posted @ 2012-12-12 10:28 qintangtao 阅读(162) 评论(0) 推荐(0) 编辑

摘要: 1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。 2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。 3、什么时候用static? 需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装 阅读全文
posted @ 2012-12-12 10:21 qintangtao 阅读(7952) 评论(0) 推荐(0) 编辑

2012年12月10日

摘要: 我们看下面的函数,函数体中只有一行语句: double Average(double total, int number){ return total/number; } 定义这么简单的函数有必要吗?实际上,它还是有一些优点的:第一,它使程序更可读;第二,它使这段代码可以重复使用。但是,它也有缺点:当它被频繁地调用的时候,由于调用函数的开销,会对应用程序的性能(时间+空间效率,这儿特指时间)有损失。例如,Average在一个循环语句中重复调用几千次,会降低程序的执行效率。 那么,有办法避免函数调用的开销吗?对于上面的函数,我么可以把它定义为内联函数的形式: inline double Aver 阅读全文
posted @ 2012-12-10 16:56 qintangtao 阅读(300) 评论(0) 推荐(0) 编辑

2012年12月7日

摘要: 1.C++异常处理在MFC中应使用C++的异常处理机制,不推荐使用MFC的宏为了使C++异常处理可用,需要进行如下设置:工程->设置->C/C++ 选项卡->分类 C++语言->允许异常处理。或者使用/GX编译选项,默认情况下是/GX-C++的异常处理结构为:try{//可能引发异常的代码}catch(type_1 e){// type_1类型异常处理}catch(type_2 e){// type_2类型异常处理}catch (...)//会捕获所有未被捕获的异常,必须最后出现{}在C++中,throw抛出异常的特点有: (1)可以抛出基本数据类型异常,如int和ch 阅读全文
posted @ 2012-12-07 17:42 qintangtao 阅读(931) 评论(0) 推荐(0) 编辑

上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 31 下一页