- 博客(24)
- 收藏
- 关注
转载 WinMain(windows程序的运行原理以及VC++的实现过程)
WinMain(windows程序的运行原理以及VC++的实现过程)操作系统以消息机制把输入设备的变化传递给我们的应用程序,操作系统所扮演的角色是神经末梢 APP 系统调用API OS 输出 输入HARDWARE 操作系统之所以成为操作系统是因为它能够控制硬件的设备,能够控制声卡发出声
2009-12-04 17:34:00 1479
转载 C/C++经典排序算法
排序算法是一种基本并且常用的算法。由于实际工作中处理的数量巨大,所以排序算法对算法本身的速度要求很高。 而一般我们所谓的算法的性能主要是指算法的复杂度,一般用O方法来表示。在后面我将给出详细的说明。 对于排序的算法我想先做一点简单的介绍,也是给这篇文章理一个提纲。 我将按照算法的复杂度,从简单到难来分析算法。 第一部分是简单排序算法,后面你将看到他们的共同点是算法复杂度为
2009-10-23 19:34:00 4635 5
转载 CString,BSTR,LPCTSTR之间联系和区别
CString ,BSTR ,LPCTSTR之间关系和区别CString是一个动态TCHAR数组,BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵,LPCTSTR只是一个常量的TCHAR指针。CString 是一个完全独立的类,动态的TCHAR数组,封装了 + 等操作符和字符串操作方法。typedef OLECHAR FAR* BSTR;typedef const char
2009-09-25 14:45:00 785
转载 C++虚函数表解析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这
2009-09-02 16:53:00 782 4
转载 结构体字节对齐问题
#include struct a { char no[10]; int p; long int pp; unsigned int ppp; char x; float y; double h; }xy; void main() { printf("struct a: %d /n",sizeof(struct a)); // 不是等于 35 吗??? 为什么等于 40 啦? } 结构体
2009-08-09 22:42:00 2952
转载 itoa函数及atoi函数
C语言提供了几个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。以下是用itoa()函数将整数转 换为字符串的一个例子:# include # include void main (void){int num = 100;char str[25];itoa(num, str, 10);printf("The number num is %d and
2009-08-03 11:19:00 558
原创 基于TCP的socket编程
sockets(套接字)编程有三种,流式套接字(SOCK_STREAM)TCP,数据报套接字UDP(SOCK_DGRAM),原始套接字(SOCK_RAW);基于TCP的socket编程是采用的流式套接字。在这个程序中,将两个工程添加到一个工作区。要链接一个ws2_32.lib的库文件。服务器端编程的步骤:1:加载套接字库,创建套接字(WSAStartup()/socket());2:绑定套接字到一
2009-08-03 09:56:00 623
转载 C++ 类访问控制public/private/protected探讨
原帖如下 1 #include 2 using namespace std; 3 4 class A{ 5 public: 6 A(int i_,int j_) 7 { 8 i=i_; 9 j=j_;10 }11 void disp(A &a)12 {13 cout14 }15 16 priva
2009-07-31 11:04:00 2785 1
原创 C语言字符串 数字转换函数大全
atof(将字符串转换成浮点型数)atoi(将字符串转换成整型数)atol(将字符串转换成长整型数)strtod(将字符串转换成浮点数)strtol(将字符串转换成长整型数)strtoul(将字符串转换成无符号长整型数)toascii(将整型数转换成合法的ASCII 码字符)toupper(将小写字母转换成大写字母)tolower(将大写字母转换成小写字母) atof(将字符串转换成浮
2009-07-27 17:32:00 1776
原创 C打开文件的追加参数
fopen(打开文件) 相关函数 open,fclose 表头文件 #include 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。 mode有下列几种形态字符串: r 打开只读文件,该文件必须存在。 r+ 打开可读写的文件,该文件必须存在。
2009-07-27 17:18:00 1067
原创 static与全局与局部变量的区别
全局变量(外部变量)的说明之前再冠以static 就构成了静态的全局变量。全局变量本身就是静态存储方式, 静态全局变量当然也是静态存储方式。 这两者在存储方式上并无不同。这两者的区别虽在于非静态全局变量的作用域是整个源程序, 当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。 而静态全局变量则限制了其作用域, 即只在定义该变量的源文件内有效, 在同一源程序的其它源文件中不能
2009-07-23 13:43:00 729
原创 VC之字符串转换_BSTR/LPSTR/LPWSTR/Char
字符串转换_BSTR/LPSTR/LPWSTR/Char 一、BSTR、LPSTR和LPWSTR在Visual C++.NET的所有编程方式中,我们常常要用到这样的一些基本字符串类型,如BSTR、LPSTR和LPWSTR等。之所以出现类似上述的这些数据类型,是因为不同编程语言之间的数据交换以及对ANSI、Unicode和多字节字符集(MBCS)的支持。 那么什么是BSTR、LPSTR以及LPWS
2009-07-22 14:13:00 1879
转载 IT管理人才必备的十大能力
作为IT技术人员,相信没有一个人愿意永远在底层编写程序或做简单的系统维护。经过一段时间的技术和经验的积累,很多人都向往更高层的职位,但如何能成为一个专业的IT管理人才,并不是每一个人都清晰、明了。 "30岁程序员的人生"技术某种程度上是青春活,技术革新的速度永远以超乎人所理解的演变,对于上了年纪又有了社会责任的技术人员来说,转型是不二选择。 如果你真想成为一名成功、成熟的IT专家,你需要不
2009-07-22 11:09:00 327
转载 进程通信(用户自定义消息,用户注册消息,windows剪贴板,WM_COPY, 内存映射,对目标进程的内存)
发送端:新建一个基本对话框工程,添加6个文本框控件,并且关联控件变量(CString类型): m_strCopyData, m_strFileMap, m_strMem, m_strRegMsg, m_strUserMsg, m_strClipBoard然后在 CPP 文件里面,做如下定义:#define BUFFER_SIZE 0x100 // 用内存地址通信时分配的
2009-07-21 16:41:00 1478
原创 char *遇到的问题
char *会被优先解释为string,所以不可能通过以下这种方式得到元素地址。也可以理解成cout的定义中有一个是以char*为参数的。char a[3][4] = {{a,a,a,a},{a,a,a,a},{a,a,a,a}}; int count = 0; for(int i=0; i!=3; i++) { for(int j=0; j!
2009-07-21 16:35:00 502
转载 CreateFileMapping和MapViewOfFile函数
在开发软件过程里,也经常碰到进程间共享数据的需求。比如A进程创建计算数据,B进程进行显示数据的图形。这样的开发方式可以把一个大程序分开成独立的小程序,提高软件的成功率,也可以更加适合团队一起开发,加快软件的开发速度。下面就来使用文件映射的方式进行共享数据。先要使用函数CreateFileMapping来创建一个想共享的文件数据句柄,然后使用MapViewOfFile来获取共享的内存地址,然后使用O
2009-07-21 15:21:00 661
转载 VC++进程间通信的十一种方法
VC++中进程间相互通信的十一种方法 进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 一个是操作系统用来管理进程的内核对象。内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL模块的代码和数据。它还包含动态分配的空间。如线程堆栈和堆分配空间。每个进程被赋予它自己的虚拟地址空间,当进程中的一个线程正在运行时,该线程可以
2009-07-21 13:47:00 531
原创 智能指针CComPtr 和 CComQIPtr
ATL 提供了2个智能指针的模板包装类,CComPtr和 CComQIPtr,这两个类都在 中声明。CComQIPtr包含了 CComPtr的所有功能,因此我们可以完全用 CComQIPtr来使用智能接口指针,唯一要说明的一点就是:CComQIPtr由于使用了运算符的重载功能,它会自动帮我们调用QueryInterface()函数,因此 CComQIPtr唯一的缺点就是不能定义 IUnknown
2009-07-20 10:03:00 724
转载 IUnknown接口
COM组件其实是一种特殊的类,遵循一个统一的标准,使到各个软件都可以通过某种方法访问这个类的函数和方法,也就可以做到组件通用. com就是统一的标准--通过接口来调用com组件.接口是你的com组件能被外界所感知的部分,实际就是一组方法(虚函数). IUnknown是所有接口的基础,他负责两项工作: IUnknown::QueryInterface负责得
2009-07-20 09:58:00 2503 2
转载 内存区划分,分配
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放
2009-07-19 22:43:00 828
原创 懒人开博
我是个懒人,不喜欢洗衣服,不喜欢吃好饭了洗碗,不喜欢写文章... 开博,主要是由于最近在公司里实习学到了很多东西,想找个地方把记录下来,也方便以后总结和提高嘛~有时候生活上遇到的事情也会记录在这里,以后没事来看看肯定很有意思。好,就这样几行字先庆祝下偶开博喽,哈哈哈
2009-07-13 14:38:00 453
原创 【转】用c++实现的8皇后问题
最近弄弄一些经典的算法,八皇后是其一。在8*8的棋盘上摆8个皇后,使任2皇后不在同一行、列、对角线上,有几种摆法?可以扩展到N皇后。#include iostream>#include string>using namespace std;#define NUM 8char cache[NUM][NUM] = {0};void queen(int row, int max){ // 依次放置
2009-07-13 12:24:00 485
原创 [转]经典C/C++算法
二分查找的代码.int bfind(int* a,int len,int val){ int m = len/2; int l = 0; int r = len; while(l!=m && r!= m) { if(a[m] > val) { r = m; m = (m+l)/2;
2009-07-13 12:21:00 437
原创 char *与string之间的相互转换
从char*转换成string :char cTest[] = "test"; string str = cTest;从string转换成char* :char *cTest = strdup(str.c_str()); 需要注意的就是用完strdup后要记得释放,free(cTest);因为strdup是从堆中分配的内存,危险哦...
2009-07-09 14:57:00 575
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人