- 博客(71)
- 收藏
- 关注
原创 关于前面提到的 vc bug 有误
不好意思,我仔细分析了一下,我最初的判断错了,原因判断错了应该是 由于 这个项目是一个 静态 lib 项目,lib 本来就是弱 link 的,所以 lib 里面的 弱 link 的 工厂模式下面的 obj 没有被 vc link 到最终的 exe 里面去。说实话,c++用得越多,就越来越觉得c++问题很大!
2006-03-02 16:14:00
1670
1
原创 今天发现一个 vc 的大 bug
遇到一个 vc 的大 bug一个项目在 A 和 B 目录下 分别有一个相同的 person.cpp编译的时候,如果不重新编译,而且其中只有一个文件需要重新编译,vc 只是检查 是否存在 person.obj 如果存在而且是否最新(这个怎么检查的不太清楚)就跳过了 一个 person.cpp 的编译如果这个是 一个弱link的项(譬如 工厂模式的object),就根本无法在编译链接期获知
2006-03-02 15:51:00
1946
原创 关注c++编译速度
早在今年的9月,我的一个项目,就面临着编译时间超长的问题,昨天我做过编译速度测试,使用 vc7.1,cl.exe在Rebuild过程中,cpu时间消耗近10分钟,整个项目多大呢?仅仅8000多行代码(当然,不包括一些底层库),而自己的另外一个近6万行代码的项目,rebuild一次也只需要3分钟左右的时间。其实原因自己也很清楚,使用了过多的template,include了很多不必要的头文件,等等但
2005-12-03 13:12:00
2942
3
原创 关于c++类成员函数覆盖
如以下代码:class A{public: void func(void);};class B : public A{public: void func(int);};B b;b.finc(1); //! 可以正常编译通过b.func(); //! 不可以编译通过,因为func被B重载了我们要怎样才能使用A::func() 呢class B : public A{public: usi
2005-12-03 12:49:00
1685
8
原创 单根结构
MFC就是典型的单根结构,所有类都从CObject继承过来,java也是的。 就我个人而言,我不太喜欢单根结构,首先是觉得没必要,为什么所有的东西都从Object派生?而且,单根结构对于多重继承,特别是多菱形的多重继承,会有些麻烦(当然,也可能是我自己的问题)。但是不用单根结构,很多时候又会突然发现有一个共同的基类,运行期会很方便。真是矛盾啊我目前的做法是,底层类库不使用单根结构,上层逻辑,才开始
2005-11-08 15:37:00
2582
原创 关于 Windows Mobile
前阵子就把vs2005 beta2装好了,其实装vs2005主要就是想尝试一下windows mobile的,这几天抽空研究了一下wm5的开发,感觉其实和普通windows开发差不多的,比起我02年接触的sym还是要好很多的,只是不能用内嵌汇编了...... 不过vc8和vc7还是有些差别,连winnt.h都变了,以前的项目会出winnt.h的错误,需要我改winnt.h才可以正常......好像
2005-09-20 09:42:00
1051
原创 atexit
ExampleThis program pushes four functions onto the stack of functions to be executed when atexit is called. When the program exits, these programs are executed on a last in, first out basis.// crt_ate
2005-08-03 11:45:00
2202
1
原创 vc静态变量构造析构顺序
class E{};class B{static E e;};class A{static B b;};class C{static B b;};在vc中,B::E、A::B、C::B 3个静态成员的析构顺序,竟然是B::E、A::B、C::B如何控制静态成员析构顺序呢?Singleton?研究了一下loki的singleton,发现它竟然在atexit的时候做了一些全局的内存释放工作,而atex
2005-08-03 11:44:00
3262
1
原创 python脚本
python脚本 boost支持python真是很简单,比lua那些脚本好用多了,现在最麻烦的问题是脚本的调试,比较痛苦:(,不过也可以出一个dll,直接在python里面调试,不过那样的话,某些情况就比较麻烦了至于例子,其实大家可以去codesampler找找,很简单的,有时间我把我封装的一个贴上来大家看看:)www.codesampler.com有些地方可能连不了,下面是一个例子的代码,大家可
2005-04-18 14:43:00
1587
原创 推荐一些适合初学者的3D教程
http://www.codesampler.com/前几天从flipcode上发现的一个站点,里面有一系列d3d教程,感觉比ms提供的要简练,很适合初学者:),还有一些物理引擎的例子,另外,也有opengl和python这些东西http://nehe.gamedev.net/知名的opengl教程,也是很值得一看的
2005-03-26 22:53:00
1877
1
原创 c++异常
我个人基本上没怎么用过c++异常,主要是觉得消耗太大了,所以一直都是返回值,没觉得什么不方便的,但前几天,遇到一些内存操作异常的错误,应该是系统设计的漏洞,但很难捕捉,客户要求尽快解决程序突然挂掉的问题,没办法,想到可以用捕捉结构化异常来解决,就是说,如果发现内存操作错误,就放弃那些可能出错的操作,保证程序的正常进行,就这样,暂时缓解了那个bug。其实仔细想想,异常也是有用的,特别是在这样情况下(
2005-03-22 14:01:00
1064
原创 link 2005 错误
在vc 2003下,如果使用了静态库,很有可能会发生link 2005的连接错误,主要是由于crt 库引起的,CRT 库对 new、delete 和 DllMain 函数使用弱外部链接,如果我们改变一下库的连接顺序,就可以解决这个错误解决方案解决该问题有两种方法:第一种解决方案涉及到强制链接程序按照正确的顺序链接库。第二种解决方案是让您查找导致问题的模块并纠正它。 解决方案一:强制链接程序按照正确
2005-03-19 14:46:00
1485
原创 SVN
前几天开始接触这个东东,用过cvs的就会发现这个工具和cvs很像,以前用cvs,总会出一些问题,而且有些工具感觉也有些问题(当然,也不排除是我个人操作习惯的原因),譬如二进制、文本方式等,这几天用下来感觉还好,没什么大问题:)
2005-03-03 23:38:00
894
1
原创 Dependency walker
Dependency walker 可以列出一个exe或者dll文件里面引用了哪些dll,对于开发查检,但是插件莫名其妙在某些机器上载入失败的人来说,这个是最好的工具了:)是系统的工具,有些朋友可能没装,下面的地址可以找到下载的:)http://ftp11.enet.com.cn/pub/system/sysanaly/depends20_x86.zip
2005-03-02 14:36:00
1483
原创 SSS-SVGA LIB v1.00
SSS-SVGA LIB v1.00 SSS-SVGA LIB是基于640X480X256显示模式的C函数库,其中还包括了键盘、鼠标、XMS、汉字显示、PCX256色图像等方面的各种函数,更有30多种图形显出、消去效果函数可供您直接调用,简化图形编程。除此之外,还提供了全部共110多个函数源代码、30个例程、四圣兽游戏源代码和
2005-01-24 22:52:00
1665
原创 明天就是世界末日
明天就是世界末日 简介: 这是一款高度自由化的极具真实感的游戏,明天就是世界末日,做为普通人的你在仅有的这一天内可以做些什么呢?虽然强调自由度,但故事背景、人物已基本确定。这两点并不相悖。故事发生在一所学校内,故事的主角是一群生活得多少都不那么如意的小姑娘小伙子,各种矛盾已接近临界点,爆发在即,你需要做的,并非是摇身一变成为救世主拯救世界,而是好好的利用这仅有的一天,做自己想做的事
2005-01-24 22:51:00
1428
1
原创 对多线式RPG的构想
看到举例还在举江湖,就知道年代了...... 我构想的多线式RPG当然不会是《江湖》那个样子的,那样的RPG完全是由主角(游戏者)来决定(或控制)的,和普通的RPG没什么太大的区别,当然你也不要希望会有玩那种被精雕细凿的游戏就像FF8那样的感觉,得到了某些自由势必会失去些别的什么。 试想一下,现实世界为什么会有如此的生机?为什么会如此的不可预知?答案很简单,就是组成这个世界的
2005-01-24 22:50:00
1274
原创 动物凶猛 游戏好玩
很早的一篇文章,贴上来留个纪念吧:) 动物凶猛 游戏好玩《动物凶猛》是王朔一篇小说的名字,写的是什么记不是很清楚了,只是固执的记得这个名字;也许是我在文字上的“造诣”和王朔相差得太远了点吧(^^费话),除了“好玩”,我确实是想不出可以用别的什么词来修饰游戏,又也许是用来修饰游戏的专有词汇就只有这么一个吧。这些天断断续续的买了好些游戏,其中有像什么《FF 8》、《NOX》
2005-01-24 22:49:00
1328
原创 剑芒罗曼史2解图片程序
剑芒罗曼史2解图片程序 mcg文件file head 40h---------------------------10h palette offset1ch width20h height---------------------------palette 400h---------------------------BMPs palette-------------------
2005-01-24 22:48:00
6239
2
原创 用完成端口开发大响应规模的Winsock应用程序(转载)
用完成端口开发大响应规模的Winsock应用程序 通常要开发网络应用程序并不是一件轻松的事情,不过,实际上只要掌握几个关键的原则也就可以了——创建和连接一个套接字,尝试进行连接,然后收发数据。真正难的是要写出一个可以接纳少则一个,多则数千个连接的网络应用程序。本文将讨论如何通过Winsock2在Windows NT? 和 Windows 2000上开发高扩展能力的Winsock
2005-01-24 22:47:00
1670
1
原创 Original War
当年汉化过的一款游戏的分析记录,由于项目关系,这个游戏没有上市,当然,我也没拿到钱,所以共享出来,应该不算违法吧 源码,也有,以后有机会或者谁敢兴趣,我再贴吧当然,如果有人认为以下内容侵犯了他的利益,请和我联系,如果确实是我不对,我会及时更正的!:)owar.exe游戏菜单owar.exe run直接运行游戏*********************************
2005-01-24 22:47:00
1545
原创 俄罗斯方块的人工智能
和上一篇是同期作品 我写的第一个C游戏就是一款俄罗斯方块游戏——《seven puzzles》,带一个很迅猛的AI,水平不怎么样,只考虑当前一个方块,是快攻型的,关于AI的做法,和大伙聊聊吧!我们大伙玩俄罗斯方块是基于一个什么原则呢?可以数学公式化的一个简单的原则?如果有兴趣的话,可以先想想,不要急着看下去,因为规则那么简单那么具体化的游戏要想用一个公式来代替它的规则实
2005-01-24 22:46:00
3840
原创 俄罗斯方块的简单实现
也是很早很早的东西了:P 这是我几年以前写的《Seven Puzzles》(该游戏为DOS版,可在鄙人主页http://ssscomic.yeah.net内找到)里的俄罗斯方块的实现方法,当时接触编程仅半年而已,希望可以给初学者一点帮助。几乎没有写什么代码,而且后阶段方块旋转、消去方面更是只大致介绍了一点方法,不过应该还是可以让人明白的。本人才疏学浅,如有不当之处,还望
2005-01-24 22:45:00
1916
原创 郁闷
武汉这几天限电,从周五开始停电,每天上午9点左右,晚上8点以后才来电,最晚的一天,10点半才来电,正是郁闷阿~~~~~~~~ 好像北京上海就不这样停电的......二等公民......
2005-01-24 22:44:00
888
原创 关于转载
一般来说,我们blog上是不会转载别人的文章或者作品的,因为这些东西大家要找应该都可以找到的,我们再放上来感觉意义不大,现在转载的一些文章,都是对我们目前做的项目有帮助的一些文章,因为某些原因,不能再最终作品上将我们参考过的文章和代码一一举出,所以只能在blog上表示感谢:) 其实,感觉国内开源或者共享精神不够好,可能就是因为大家都只知道用,却不知道感谢或者把自己的东西共享出来
2005-01-24 22:43:00
956
原创 如何访问WebBrowser的滚动条
WebBrowser的滚动条不是一般的Windows滚动条,用GetScrollPos或GetScrollInfo等API是不能访问的。下面的代码演示了在VC中如何通过HTML接口来访问浏览器的滚动条。 HRESULT hr; IDispatch *pDisp = GetHtmlDocument(); ASSERT( pDisp ); //if NULL, we failed
2005-01-24 22:42:00
1392
原创 屏蔽WebBrower控件右键菜单技巧合集
1.常被人鄙视的方法(PreTranslateMessage) 经常见到有人问怎么屏蔽html的右键菜单,有人答用PreTranslateMessage函数拦截wm_rbuttondown消息,于是总会有人说这种方法怎么烂,@_@,我真不知道为什么,不过我想这也是一种方法呀,而且非常简单,所以还是列出来吧:)BOOL CPreTranslateMsgView::PreTranslate
2005-01-24 22:42:00
2362
原创 sqlserver 链接数据库
exec sp_addlinkedserver [ServerName],,SQLOLEDB,[ip]exec sp_serveroption [ServerName], rpc out, true exec sp_serveroption [ServerName], rpc, trueexec sp_addlinkedsrvlogin [ServerN
2005-01-24 22:41:00
844
原创 iostream 实现中的差异
从 Visual C++ .NET 2003 开始,移除了旧的 iostream 库。 标准 C++ 库和以前的运行时库之间的主要差异在于 iostream 库。iostream 实现的具体细节已经更改,如果想链接标准 C++ 库,可能有必要重写代码中使用 iostream 的部分。必须移除任何包含在代码中的旧 iostream 头文件(fstream.h、iomanip.
2004-12-29 14:56:00
2658
原创 无默认库生成的早期项目
选择 /NODEFAULTLIB 可以生成没有默认库的项目。如果以前的项目是用无默认库生成的并且想进行 iostream 调用,必须给新的标准 C++ 运行时库(Libcp.lib、Libcpmt.lib、Msvcprt.lib 等等)或者旧 iostream 运行时库(Libci.lib、Libcimt.lib、Msvcirt.lib 等等)中的一个命名,以便可以链接适当的库。 在 Vi
2004-12-29 14:56:00
993
原创 socks代理
http://www.cesdn.net/document/show.aspx?sn=00000000000000000001 穿透代理服务器编程在网络程序设计过程中,我们经常要与各种类型的代理服务器打交道,比如在企业内部网通过代理去访问Internet网上的服务器等等,一般代理服务器支持几种常见的代理协议标准,如Socks4,Socks5,Http代理,其中Socks5需要用户验证,
2004-12-29 14:55:00
1369
原创 stl port & ms stl
目前,除了有些接口上的差异外,我发现了2个地方,对代码移植上会有差异 一是 earse 接口,ms stl 好像所有容器的 earse 接口都会返回一个 iterator ,指向下一个 iterator,stlport 好像就只有 list这些是这样的,其他的都是 void二是 元素的比较问题ms stl 里面,只要 定义一个 class 的
2004-12-29 14:53:00
1061
原创 vc6 & vc7
这几天把一个vc6下面的庞大的引擎转到vc7.1下,发现vc6的很多语法更合理 譬如class A : public B, C, D { ... };这种语法,在vc7下面,C、D就是 private 方式继承的,其实从习惯上看,应该是 public吧,这个和int a,b,c; 类似才对阿还有,vc6 支持函数指针带缺省参数typedef void (
2004-12-21 09:44:00
1068
原创 极品飞车
从地下狂飙开始,才开始喜欢这个系列,2代比1代来说,加了一个大场景的城市,在城市里面,140的速度狂飙,感觉真的很爽:P 但我玩到12%多的时候,地图上就没标示任务了,要自己去闲逛着找,这点太不能接受了!另外就是,那么大的一个城市,完全不用读取,很流畅的游戏,这点做得很不错的
2004-12-21 09:41:00
1389
原创 ps2
上周,在一个朋友家呆过几天,玩了一下ps2,鬼舞者、鬼颤、齐侠joe这些capcom的作品,感觉不错,joe和波斯王子比较类似了,关于控制时间的,比较有意思,另外2款,主要就是爽快地格斗了,呵呵,什么时候也想弄台ps2了:)
2004-12-21 09:41:00
797
原创 半条命2
朋友一直都很期待的大作,说实话,就fps来说,我个人比较偏爱id,当然,半条命1我也觉得很不错,有些地方很有创意,特别是那只大的只能听见声音的怪兽,不能硬拼只能躲的,那个设定很经典,以前fps游戏中,都没有这种设定的说 对于半条命2,最震撼的就是他的物理引擎,吊车那一段感觉很不错,还有重力枪,也很有意思:)但整体说来,没有1代那么好玩了,基本上从头打到尾,AI也比较差,感觉
2004-12-21 09:40:00
934
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人