- 博客(45)
- 资源 (19)
- 收藏
- 关注
转载 c++ const 成员函数
一些成员函数改变对象,一些成员函数不改变对象。 例如: int Point::GetY() { return yVal; } 这个函数被调用时,不改变Point对象,而下面的函数改变Point对象: void Point:: SetPt
2011-08-11 22:46:47
469
转载 set_new_handler C++ new分配失败
当运算符new找不到足够大的连续内存块来为对象分配内存时将会发生什么?一个称为 new-handler的函数被调用。对于new-handler的缺省动作是抛出一个异常。然而,如果我们在程序里用堆分配,至少要用“内存已用完”的信息代替 new-handler,并异常中断程序。用
2011-08-11 21:49:58
555
转载 COM与数据库访问
第2章 COM与数据库访问2.1 COM的基本原理COM即组件对象模型,是一种以组件为发布单元的对象模型,这种模型使各种软件组件可以通过一种通用的方式进行交互。COM既提供了组件之间进行交互的规范,也提供了实现交互的环境,因为组件对象之间交互的规范不依赖于任何特定的语
2011-08-10 15:04:36
1557
原创 C++内联函数(Inline)介绍
介绍内联函数之前,有必要介绍一下预处理宏。内联函数的功能和预处理宏的功能相似。相信大家都用过预处理宏,我们会经常定义一些宏,如#define TABLE_COMP(x) ((x)>0?(x):0) 就定义了一个宏。 为什么要使用
2011-08-06 17:31:41
517
原创 typeid
typeid c++中该函数用于获知一个变量的具体类型。 运行时获知变量类型名称,可以使用 typeid(变量).name,需要注意不是所有编译器都输出"int"、"float"等之类的名称,对于这类的编译器可以这样使用:float f = 1.1f; if(
2011-08-06 12:13:45
454
原创 static_cast
static_cast 用法:static_cast ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类
2011-08-06 09:42:59
362
转载 深入理解C语言中的指针与数组之指针篇
前言 其实很早就想要写一篇关于指针和数组的文章,毕竟可以认为这是C语言的根本所在。相信,任意一家公司如果想要考察一个人对C语言的理解,指针和数组绝对是必考的一部分。 但是之前一方面之前一直在忙各种事情,一直没有时间静下心来写这些东西,毕竟这
2011-08-05 18:48:58
529
原创 c++日志类(控制台)
有时候我们在写服务器端的程序的时候,经常需要用到日志,这几天在做些事情的时候,发现居然还没有我自己经常使用的一个日志类,正好现在又找到一个非常不错的日志类,所以把他记录下来,留待以后直接拿来用就可以了:Log.h#if !defined(__TEST_LOG__INCLU
2011-08-05 18:39:18
2394
原创 基类和继承类之间的转换dynamic_case介绍
dynamic_cast介绍 dynamic_cast (expression)这个表达式将 expression 转换为一个 type-id 类型的对象。 Type-id 必须是一个指针、指向
2011-08-05 16:51:02
4312
1
原创 python获得帮助文档
<br />获得帮助文档可以通过正式的python安装包,安装后即可看到其开发使用文档,目前好像全是英文版<br />或者从网上下载电子的学习文档
2011-01-26 16:05:00
647
原创 获取当前系统版本
#define SYSTEM_VERSION_REG_KEY "SOFTWARE//Microsoft//Windows NT//CurrentVersion"#define SYSTEM_CURRENT_VER_VAR "CurrentVersion" HKEY hKey; LONG lRet = RegOpenKeyEx(HKEY_LOCAL_MACH
2010-05-26 20:35:00
691
2
原创 工具栏的制作暨CtoolbarEx类和CCustomizeDialog类使用说明
工具栏的制作暨CtoolbarEx类和CCustomizeDialog类使用说明*************http://download1.youkuaiyun.com/down3/20070607/07151208144.doc**************************实现像IE浏览器工具栏按钮一样的外观效果,不但有按钮图标,而且可以显示文字。文字的位置有两种显示方式:图标下方和右边。自定
2010-05-22 23:32:00
864
原创 静态文本超链接编程暨CStaticLink类使用说明
静态文本超链接编程暨CStaticLink类使用说明********************************************************例子:在About对话框上实现如下图蓝色显示的两个静态文本超链接。编程步骤如下:1、 向工程项目中添加StatLink.cpp和StatLink.h文件。2、 在About对话框类中包含头文件#include "
2010-05-22 23:31:00
832
原创 this 指针
this 指针 对于每一个类的非静态成员函数,都有一个隐含的this指针,该指针指向调用该成员函数的实例对象。当成员函数使用对象中的非静态成员,它事实上是通过this指针来调用该成员的。class MyClass{ public: void seti (int newi){i=newi;}private: int I;};对编译器而言,成员函数seti的定义事
2010-05-22 23:29:00
443
原创 浮动窗口的制作暨CSizingControlBar类的使用说明
浮动窗口的制作暨CSizingControlBar类的使用说明*********************************************************** 本文在实现过程中,为了方便起见,参照VC 知识库《轻松实现类VC界面》。一、实现原理图中右侧浮动窗口的实现类是从CControlBar派生出来的,我们并不需要从头到尾实现该类,因为Cristi Posea
2010-05-22 22:54:00
901
原创 VC TRACE宏
TRACE宏对于VC下程序调试来说是很有用的东西,有着类似printf的功能;该宏仅仅在程序的DEBUG版本中出现,当RELEASE的时候该宏就完全消息了,从而帮助你调式也在RELEASE的时候减少代码量。使用非常简单,格式如下:TRACE("DDDDDDDDDDD");TRACE("wewe%d",333);同样还存在TRACE0,TRACE1,TRACE2。。。分别对应0,1,
2010-05-22 22:42:00
433
原创 #pragma pack(1) and #pragma pack(push,1)是什么意思
(1) #pragma pack(1) 作用:调整结构体的边界对齐,让其以一个字节对齐;#pragma pack(1) 使结构体按1字节方式对齐例如:struct sample{char a;double b;};若不用#pragma pack(1)和#pragma pack()括起来,则sample按编译器默认方式对齐(成员中size最大的那个)。即按8字节(doub
2010-05-22 22:38:00
709
原创 #pragma预处理指令略解
#pragma指令通常用于程序开发中设置编译器的状态和指示编译器完成某种特定的动作。一. message 参数。message 它能够在编译信息输出窗 口中输出相应的信息,这对于源代码信息的控制是非常重要的。其使用方法为: #pragma message(“消息文本”) 当编译器遇到这条指令时就在编译输出窗口中将消息文本打印出来。 当我们在程序中定义了许多宏来控制源代码版本的时候,
2010-05-22 22:29:00
487
1
原创 探讨:内存对齐
主 题: 探讨:内存对齐作 者: typedef_chen ((名未定)(我要骗人))等 级: 信 誉 值: 100所属论坛: C/C++ C++ 语言问题点数: 50回复次数: 1发表时间: 2005-04-02 22:53:27 朋友帖了如下一段代码: #pragma pack(4) class TestB { public: int
2010-05-22 22:27:00
540
原创 如何学习嵌入式系统(基于ARM平台)
一、嵌入式系统的概念 本文来自"岁月联盟" 着重理解“嵌入”的概念 信息来源"岁月联盟" 主要从三个方面上来理解。 来源"岁月联盟" 1、从硬件上,将基于CPU的处围器件,整合到CPU芯片内部,比如早期基于X86体系结构下的计算机,CPU只是有运算器和累加器的功能,一切芯片要造外部桥路来扩展实现,象串口之类的都是靠外部的16C550/2的串口控制器芯片实现,而目前
2010-05-22 22:09:00
806
1
原创 const使用详解
关于C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,现将本人的一些体会总结如下,期望对大家有所帮助: 一 const基础如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500;const int* a = &b; [1]int const *a = &b; [2]int* const a = &b;
2010-05-22 22:03:00
452
原创 买不起书的,就下吧,超级经典
地址库1http://topic.youkuaiyun.com/u/20080904/10/2f23253f-b2e6-4354-8b80-4216b1cfbdfe.html 地址库2http://topic.youkuaiyun.com/u/20080902/10/a0c3d5a3-eb86-41ad-b45a-27d301ea5b65.html
2010-05-10 11:07:00
409
原创 unix格式转换成windows格式
int main(int argc, char* argv[]){ int ch; char *file1 = "c://e1.txt"; char *file2 = "c://e.txt"; FILE *in = NULL; FILE *out = NULL; if (!(out = fopen(file1,"wb+"))) { return 1; } if (!(in = fopen
2010-05-10 10:47:00
1168
原创 获取进程当前的路径
//FUN9:获取进程当前的路径CString GetModulePath(){ CString strPath; GetModuleFileName(NULL, strPath.GetBuffer(MAX_PATH), MAX_PATH); strPath.ReleaseBuffer(); int nPos = strPath.ReverseFind(//); strPath = s
2010-04-06 18:13:00
608
原创 判断当前盘符是否存在
/* FUN8:判断当前盘符是否存在 */BOOL CheckDiskExist(LPCTSTR lpDisk){ TCHAR szDrvMsg[] = "A:"; ULONG uDriveMask = _getdrives(); if (uDriveMask != 0) { while (uDriveMask) { if (uDriveMask & 1) { if (m
2010-04-06 18:12:00
2705
原创 获取当前系统版本(4)
if (WINDOWS_SYSTEM_VER_VISTA32 == version) { CString strBuildLabEx; dwBufSize = MAX_PATH; if (ERROR_SUCCESS != RegQueryValueEx(hKey, SYSTEM_BUILD_LAB_EX_VAR, NULL, NULL, (UCHAR*)strBuildLabEx.G
2010-04-06 18:09:00
529
原创 获取当前系统版本(3)
//if value is 6.0, system is window vista else if (6 == szAppPath[0] && 0 == szAppPath[2]) { version = WINDOWS_SYSTEM_VER_VISTA32; } //if value is max than 6.0, now system is window vista //if v
2010-04-06 16:54:00
463
原创 获取当前系统版本(1)
#define SYSTEM_VERSION_REG_KEY "SOFTWARE//Microsoft//Windows NT//CurrentVersion"//操作系统版本信息的注册表路径enum WINDOWS_SYSTEM_VER{ WINDOWS_SYSTEM_VER_98 = 0, WINDOWS_SYSTEM_VER_2000, WINDOW
2010-04-06 16:53:00
464
原创 获取当前系统版本(2)
DWORD dwBufSize = MAX_PATH; //get value for product name UCHAR szAppPath[MAX_PATH] = {0}; if (ERROR_SUCCESS != RegQueryValueEx(hKey, SYSTEM_CURRENT_VER_VAR, NULL, NULL, szAppPath, &dwBufSize)) { R
2010-04-06 16:53:00
538
原创 删除文件, 可以删除只读文件
//FUN3:删除文件, 可以删除只读文件.bool MyDeleteFile(LPCTSTR lpFileName){ // 获取文件的当前属性; DWORD dwAttrs = GetFileAttributes(lpFileName); // 重新设置文件属性; if ((dwAttrs & FILE_ATTRIBUTE_READONLY) != 0)
2010-04-06 15:08:00
1144
原创 学习不是赶路
到目前为止发现了几点规律:1。 学习不是赶路,不能心浮气躁。 心情自然而然才能够理清思路,畅然思索 2。不经实践不能深刻认识 有好多东西是在不知不觉的接触锻炼当中才积累起来的,很多时候是匆忙之中拿来应急的,后来静下心来才去慢慢思考其中的内涵,有种恍然大悟,原来如此的感觉 但从这两点来看就是要注意力集中,精神要专注。 3. 还想到的
2010-03-31 22:35:00
476
原创 vc 按行读取文件DEMO收集
//第一种 FileStream *fs; if( openFileDialog1->ShowDialog() == DialogResult::OK ) { fs = new FileStream(openFileDialog1->FileName, FileMode::Open); StreamReader
2010-03-27 00:59:00
1492
原创 编写驱动拦截NT的API实现隐藏文件目录
目前NT下有很多种隐藏文件和目录的方法,其中最简单的一种是给文件和文件夹加上系统属性和隐藏属性,操作系统就会不在显示了,而且查找也找不到了,但是这种方法一点都不彻底,没有可用性!下面我们来介绍用NT驱动程序来拦截NTAPI来实现彻底隐藏文件和目录的目的。NT下有一个文件NTDLL.DLL,大部分NTAPI都是在这个库中封装的。其中实现查找文件和目录的API接口是ZwQueryDirectoryFi
2010-03-27 00:50:00
957
原创 在VC++下对文件属性的获取与更改
摘要:本文讲述了在Visual C++ 下编程实现对磁盘文件的属性进行获取以及更改的一般方法,并给出部分相关的关键代码。 一、 引言 文件是数据在磁盘上最常用的一种存放形式,也是在程序设计中与之经常打交道的一种编程对象,不少程序尤其是数据传输和处理类的应用程序更是需要频繁的创建、读取和写入文件。对于一些要求不是很严格的程序,我们往往只关心文件的内容是否正确、文件大小是否有增减或是再严格一些,
2010-03-26 23:48:00
722
1
原创 VC 实现文件夹属性的获取与更改
VC 实现文件夹属性的获取与更改 - VC引言: 对于大多数的IT企业和绝大多数的个人用户而言,数据的备份主要是对数据内容的简单备份,而很少涉及对备份数据自身属性如文件属性、所在文件夹的时间属性等内容的备份。而在某些对数据管理有着非常严格要求的特殊行业中,对以上这些相关属性信息的备份也是同等重要的。但是在目前的Windows操作系统下,不论是直接通过手工进行数据备份还是通过某些数据备份软件
2010-03-26 23:37:00
853
原创 SplitConfg 源代码 (四)
void CloseFilePointer(CStdioFile& file){ if (file.m_pStream != NULL) { file.Close(); }}int ConvertFileFormat(CStdioFile& file,CString strTemBuf,CString strTemFile,const CString strFlag){ if (file
2010-03-23 18:47:00
399
原创 SplitConfg 源代码 (三)
else { cout CloseFilePointer(fleConfg); return 1; } } else { if (file.m_pStream != NULL) { file.WriteString(strBuf); } pBuf = fleConfg.ReadString(buf,LINEMAX); strBuf =
2010-03-23 18:44:00
515
1
原创 SplitConfg 源代码 (三)
if (ConvertFileFormat(file,strTemBuf,strTemFile,UNIXFILEFLAG)) { CloseFilePointer(fleConfg); return 1; } strTemBuf = strBuf; pBuf = fleConfg.ReadString(buf,LINEMAX); strBuf = buf;
2010-03-23 18:43:00
356
原创 SplitConfg 源代码 (二)
const CString WINFILEFLAG = "##########dos/windows##########/n"; const CString UNIXFILEFLAG = "##########unix/linux##########/n"; int LINEMAX = 1024; char buf[1025] = {0}; memset(buf,0,LINEMAX+1); C
2010-03-23 18:40:00
386
原创 SplitConfg 源代码 (一)
//parameter verify if (argc != 3) { cout return 1; } /* AW8D00063 Modified by zhengguoying, 2010/3/23 END >*/ //the set-file which needed to be dealed CString strConFle = argv[1]; //the main pa
2010-03-23 18:39:00
417
Div_Windows驱动开发技术详解(pdf书.源代码)_4.rar
2010-05-04
Div_Windows驱动开发技术详解(pdf书.源代码)_2.rar
2010-05-04
Windows驱动开发技术详解(ch01.pdf,ch17.pdf)
2010-05-04
Windows驱动开发技术详解(pdf书.源代码)1.rar
2010-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人