11 2011 档案

摘要:《慢慢啃》 2011.11.29函数指针 函数指针是指向函数的指针变量。 因而“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。 如前所述,C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。有了指向函数的指针变量后,可用该指针变量调用函数,就如同用 指针变量可引用其他类型变量一样,在这些概念上一致的。函数指针有两个用途:调用函数和做函数的参数。函数指针的说明方法为: 数据类型标志符 (指针变量名)(形参列表); 注1:“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以... 阅读全文
posted @ 2011-11-30 16:55 kanego 阅读(1418) 评论(0) 推荐(0) 编辑
摘要:CALLBACK函数要声明称 static或全局,而在静态的函数中药调用非静态成员还不能调用,必须把这些成员也设置成静态的,不怎么方便,有好的解决方法吗。其原因是把CALLBACK函数封装成C++类的非静态成员后,需要有建立对象,再通过对象才能去找到这个成员函数。而系统调用这个CALLBACK函数的时候,才不管你有没有建立对象呢。典型的解决方法是需要用静态成员函数给系统CALL。然后设法把THIS指针传给这个STATIC函数,让这个STATIC函数通过THIS指针访问到当前对象里的成员函数,那么这个成员函数就可以轻松操作所有成员变量了。这种方法适用于所有系统CALLBACK。以CreateTh 阅读全文
posted @ 2011-11-30 10:38 kanego 阅读(919) 评论(0) 推荐(1) 编辑
摘要:Believable Dead Reckoning for Networked Games Author: Curtiss Murphy*******************INTRODUCTION*******************This text file goes along with the Game Engine Gems 2 chapter described above. The source material found on the DVD for this chapter was taken from several open source repositories i 阅读全文
posted @ 2011-11-25 16:36 kanego 阅读(2047) 评论(0) 推荐(0) 编辑
摘要:OSG似乎忽略了我设置的*/远剪切*面(near/far clipping plane),为什么?A:使用osgUtil::SceneView时,远/*剪切*面在运行时根据视点与场景的值自动进行计算。这种设计可以优化深度缓存的远/*深度范围,否则可能由于远/**面的设置不当而产生斑驳(z-fighting)的现象。 用户也可以重新设置这一特性,使用: sceneview->setComputeNearFarMode(osgUtil::CullVisitor::DO_NOT_COMPUTE_NEAR_FAR) 如果视口为osgProducer::Viewer,则可以使用: viewer.g 阅读全文
posted @ 2011-11-23 15:59 kanego 阅读(4170) 评论(0) 推荐(0) 编辑
摘要:导读: 我相信写WIN32程序的人,做过DLL,都会很清楚__declspec(dllexport)的作用,它就是为了省掉在 DEF文件中手工定义导出哪些函数的一个方法。当然,如果你的DLL里全是C++的类的话,你无法在DEF里指定导出的函数,只能用 __declspec(dllexport)导出类。但是,MSDN文档里面,对于__declspec(dllimport)的说明让人感觉有点奇怪, 先来看看MSDN里面是怎么说的: 不使用 __declspec(dllimport) 也能正确编译代码,但使用 __declspec(dllimport) 使编译器可以生成更好的代码。编译器之所... 阅读全文
posted @ 2011-11-21 15:06 kanego 阅读(258) 评论(0) 推荐(1) 编辑
摘要:assert宏的原型定义在<assert.h>中,其作用是如果它的条件返回错误,则终止程序执行,原型定义: #include <assert.h> void assert( int expression );assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息, 然后通过调用 abort 来终止程序运行。请看下面的程序清单badptr.c: #include <stdio.h> #include <assert.h> #include <stdlib.h>int ma 阅读全文
posted @ 2011-11-16 14:03 kanego 阅读(302) 评论(0) 推荐(0) 编辑
摘要:对于配置文件,一般会选用ini,xml 等等的配置格式。如何快速高效的从文件内读取自己想要的信息是每个做配置文件想要达到的效果。对以小型开发我们并不用时用到msxml这种重量级的解析器。那样会给自己添麻烦的。这里我推荐大家使用rapidxml。之前使用tinyxml 感觉还可以。后看了rapidxml 就想换用这个开源库。经常编写跨平台软件省去编译和加载lib。4个文件实现解析xml而且超高效官网还拿他跟strlen比较速度牛X吧看看下面的表。其他废话我就不多讲。其实之前也有人介绍这个库怎么使用。这里我就给几个链接。燕良博客:http://blog.csdn.net/Neil3D/archiv 阅读全文
posted @ 2011-11-13 21:49 kanego 阅读(8943) 评论(0) 推荐(0) 编辑
摘要:1, OTL是什么OTL是一个数据库访问模板库,支持绝大部分数据库访问。OTL是C++写的,based on templates, 只有一个头文件,大小只有800K+。使用方便,性能也很不错可以使用OTL访问基本上所有的数据库,在你更换数据库时不用修改任何业务代码强烈推荐在C++开发中使用2,OTL下载http://www.veda.dk/~clr/doc/otl/otlv4_h.zip3,OTL使用参见OTL Samples: http://www.veda.dk/~clr/doc/otl/otl3_examples.htm4,多线程下使用OTL时几个注意的地方1) static int o 阅读全文
posted @ 2011-11-10 10:15 kanego 阅读(1820) 评论(0) 推荐(0) 编辑
摘要:在http://otl.sourceforge.net/otl3_stream_class.htm 中对buffer size 的说明是:The buffer size is defined in logical rows to inserted into a table, selected from a table / view in one round-trip to the database (a.k.a. batch size, array size). 为此做了如下例子进行了测试.代码如下:// TestOCT.cpp : Defines the entry point for th 阅读全文
posted @ 2011-11-09 09:39 kanego 阅读(1896) 评论(0) 推荐(0) 编辑
摘要:OTL之Oracle开发总结---转关于OTL,网上介绍的也不少,但看来看去也只是官方的那些文档。OTL很好用,结合官方提供的一些例子,多多尝试才能领悟。经过一个月左右的项目开发,对OTL也有些了解,在这里总结一下,希望对刚接触OTL的新手有所帮助。其中有些地方,比如对网络异常的处理,可是费了我两天的时间才解决的,我那个汗哪。废话少说,开始正题:一、开始前的准备工作在使用OTL进行编程之前,要首先确定使用的Oralce版本以及所选用的字符集。OTL支持目前几乎所有的主流数据库,可以通过宏启用otlv4.h中对应的数据库操作接口。如:使用oracle 11g R2、字符集选择UTF8,则可在包含 阅读全文
posted @ 2011-11-08 14:07 kanego 阅读(3429) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示