- 博客(32)
- 资源 (2)
- 收藏
- 关注
原创 c/c++中的NULL和0的区别
stdlib.h中/* Define NULL pointer value */#ifndef NULL#ifdef __cplusplus#define NULL 0#else#define NULL ((void *)0)#endif#endifc++中NULL就是0但是c中NULL却需要强制转换。为什么?不知道啊!!
2011-10-26 18:14:55 649
原创 用自己的话总结【windows核心编程】
哈哈!开始!!为什么会有关键段这个东西?首先我们已经有了Interlocked函数了,这些函数可以在用户态下进行多线程互斥,为什么可以在用户模式下进行多线程互斥呢?因为一般的认识来看的话,必须是多个线程可以共享的东西,当然全局变量符合这个条件,但是全局变量是不合适的,如果把一个全局变量当锁来用,我们会先判断一下他是不是可以用,假如可以用,我们就得把他变得不可用,就像厕所门一样,发现里面
2011-10-26 16:59:30 469
原创 记不住就去死吧!!
FILE *fopen( const char *filename, const char *mode );size_t fread( void *buffer,//Storage location for data. size_t size,//Item size in bytes. size_t count,//Maximum number of ite
2011-10-26 13:58:36 459
原创 rep stos dword ptr [edi]
引用一篇http://apps.hi.baidu.com/share/detail/11140897rep 为repeat 重复之意stos 为store string 保存字符串之意ptr 为pointer 指针之意00401060 push ebp00401061 mov ebp,esp00401063 sub
2011-10-24 11:57:57 1497
转载 linux ls
举例来说明一下: -|rw-|r--|r-- 1、r代表可读,w表示可写,-表示该文件的所有者没有对文件的执行权限,具有可执行权限则用x表示。 2、第一个字符是文件类型(文件类型分两种:普通文件和目录文件,若为普通文件,用连字号-表示;若为目录文件就用d表示。) 3、剩下的字符表示对文件的访问权限 4、第一个字符的后3个字符表示文件所有者对文件的访问权限。 5、后续3个字符
2011-10-23 20:32:03 419
原创 可变参数表函数的原理
引用一篇http://www.cnblogs.com/liyou_blog/archive/2010/09/01/1814663.html
2011-10-23 14:48:22 362
原创 java函数传参
学习下java。函数传参很有意思。开始还真的迷糊了几分钟。查了点资料,马上就理解了。Object obj = new Object(); //创建一个对象(在堆中), 并将obj引用指向这个对象。这里obj不是一个对象了,而是一个对象的引用。这一点和C++是不一样的。也就是说,java中不能在栈上创建对象。为什么呐?我想了一下。可能是这样的,java本身有自动内存清理机
2011-10-23 14:34:32 1070
转载 C++获取文件大小常用技巧分享
C++编程语言在程序开发应用中能够帮助我们轻松的完成许多功能需求。比如今天为大家介绍的C++获取文件大小的方法,就可以以多种方式轻松的实现。现在将会实现方法呈现给大家,以便大家参考。C++获取文件大小代码示例:#include iostream> #include io.h> #include sys\stat.h> #include afx.h>
2011-10-22 16:52:18 522
原创 怎样检查内存泄露的位置
网上找的方法。#include inline void EnableMemLeakCheck(){ _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);}#ifdef _DEBUG#define new new(_NORMAL_BLOCK, __FILE__, __LINE__
2011-10-22 15:51:02 433
原创 利用指针获取私有成员变量的值
有这么一个类class CTest{public: CTest(int t) { k=t; }private: int k;};假如没有提供方法的话,怎么获取k的值呐?利用指针。如果看过C++对象模型的话,应该明白,访问权限这些东西只不过是编译器处理的东西,对于内存来讲,都是浮云。 CTest a(2); //*(int*)&a=100; int h=*(i
2011-10-22 15:12:04 669
转载 C语言 如何动态创建二维数组
???const int k=10;int (*p)[k]; k必须要编译器已知,所以这里用了const常量定义。p=(int(*)[k])malloc(n*k*sizeof(int));分配n行k列的内存区域。
2011-10-22 08:08:10 474
原创 c和c++文件操作比较
我在这里比较下C语言和C++的文件操作。首先是几个基础问题。typedef basic_ifstream > ifstream;typedef basic_ofstream > ofstream;typedef basic_fstream > fstream;查了下stlport,stlport\stl\_iosfwd.h,发现fstream不过是个typedef。char_
2011-10-20 23:07:27 1333
原创 sscanf是什么??
sscanf() - 从一个字符串中读进与指定格式相符的数据. int sscanf( const char *, const char *, ...); int sscanf(const char *buffer,const char *format[,argument ]...); buffer 存储的数据 format 格式控制字符串 argument 选择性设
2011-10-20 23:04:25 447
原创 ogre+mfc+boost
想尝试ogre+mfc,网上下了一个案例,编译出现一堆问题。首先是版本的问题“应用程序无法正常启动oxc0150002”我把boost还有ogre的版本都重新用vs2010编译了一遍。首先对这个问题,我倒是有些奇怪的,pe文件头的确有编译软件的相关信息(记得是这样的)
2011-10-18 10:38:49 1936
原创 Ogre的多线程
以OGRE_LOCK_MUTEX(name)为例。查找得到以下宏定义。\Threading\OgreThreadDefinesBoost.h#define OGRE_LOCK_MUTEX(name) boost::recursive_mutex::scoped_loc
2011-10-17 09:09:17 1256
原创 ogre设计模式
我承认我学的东西太杂了。首先是factory method模式,即工厂方法。设计模式是这么说的:定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到其子类。我理解的就是,可以通过一个接口去创建多种对象,C
2011-10-16 21:34:57 736
原创 研究一下duilib吧
duilib是个开源的界面库,国人作品。这几天有时间看看他的源码。分析一下。初看时有几个比较好奇的地方:1.消息机制,怎么传给控件的,有没有反射机制。特别要关注的应该是他的WM_MOUSEMOVE的处理,像这种directUI的界面,鼠标移动事件会引发界面
2011-10-15 22:55:33 1677
原创 boost的多线程实现机理
对boost的多线程感觉挺好奇的,所以就追踪了以下。设置在 下面,为了调用windows api,boost是这么做的# include namespace boost{ namespace detail { namespace w
2011-10-15 10:00:20 1647
原创 boost的any有什么用?
有人这么说: 很多时候我们想有一种可以代表任何类型的类型,比如像纯面向对象语言java或.net中的Object类型,但是对于C++本身并没有这样一个基类,所以我们如果要解决这类问题,首先我们考虑的是使用基类的指针,这能够解决以部分问题,但是更多的我们可以求助于void
2011-10-14 23:08:28 511
原创 getline怎么用?
首先来看stl中的声明,当然要看sgi版本的了template basic_istream& getline(istream& __is,basic_string& __s,_CharT __delim);template in
2011-10-13 22:55:32 1136
转载 什么是守护进程,以及如何编写
守护进程 守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。unix系统有很多守护进程,大多数服务器都是用守护进程实现的。比如,网络服务inetd、Web服务http等。同时,
2011-10-11 20:45:41 401
转载 explicit
C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 C++中, 一个参数的构造函数(或者除了第一个参数外其余参数都有默认值的多参构造函数), 承担了两个角色。 1 是个
2011-10-11 20:09:09 334
转载 私有构造函数 私有析构函数
很多情况下要求当前的程序中只有一个object。例如一个程序只有一个和数据库的连接,只有一个鼠标的object。通常我们都将构造函数的声明置于public区段,假如我们将其放入private区段中会发生什么样的后果?这意味着什么? 当我们在程序中声明一个对象时,
2011-10-11 20:05:27 897
转载 CWnd与HWND的区别与转换
一、区别HWND是句柄,CWnd是MFC窗体类,CWnd中包含HWND句柄成员对象是m_hWnd.HWND是Windows系统中对所有窗口的一种标识,即窗口句柄。这是一个SDK概念。 CWnd是MFC类库中所有窗口类的基类。微软在MFC中将所有窗口的通用操作都封装
2011-10-11 20:04:00 411
原创 《C和指针》 读书笔记
int a[10]在C中,在几乎所有使用数组名的表达式中,数组名的值是一个指针常量,也就是数组第一个元素的地址。它的类型取决于数组元素的类型,如果它们是int类型,那么数组名的类型就是“指向int的常量指针”。只有在两种场合下,数组名并不用指针常量来表示——就是当数组名作
2011-10-05 22:33:47 294
原创 开始学习linux
在ubuntu下编译gcc -o 输出文件名 源文件名编译完之后在当前目录下生成无后缀名的可执行文件运行方法:./执行文件名开头的./必须加,否则运行不了??奇怪的vi编辑还是太别扭了!今天装了g++编译器,当然装得时候是很繁琐的。碰到
2011-10-03 08:17:38 286
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人