
C++ About
文章平均质量分 50
win2ks
这个作者很懒,什么都没留下…
展开
-
聆听大师的声音(EFC)
1.使用const和inline而不是#definedefine可以做成全局的,static const做成全局的则有欠面向对象。define需要一致的使用方式,否则和散落在各处的static const一样难以修改(和魔术数字遇到同样的问题)建议define单放在一个文件中并且使用严格编码规范保证按照设计思路使用。const面向对象的做法是封装成class中的static成员变量,但这样需要额外原创 2008-04-16 17:44:00 · 1077 阅读 · 0 评论 -
error C2683: “dynamic_cast”:“XXX”不是多态类型
是的是的,使用dynamic_cast会引发效率上的担忧,但是有时候这是必要的,而有时候,这是必须的,在自己不预加运行时识别策略的时候,如果要使用运行时处理机制,通过dynamic_cast判断指针或检测异常是一个非常直观的想法,而且不少时候这也很有效。但对dynamic_cast理解不够深入会遇到这样的麻烦:class Bast...{};class Test :public原创 2008-04-21 15:39:00 · 8085 阅读 · 4 评论 -
双向容器
有时候,解决问题的方法只是简单的换一下思维。 曾经有段时间我特别喜欢id号这个东西,那个时候的程序里可以看到各种各样“有明确意义”的索引,指针、字符串最常见,现在翻番那个时候的东西,觉得很幼稚很天真丷丷,闲来没事做一些优化,碰到了一个双向查找的问题,有时候我需要使用key找value,有时候又需要通过value找特定的key,其实很简单,真有这种需求的话做两个哈希表互相颠倒key-val原创 2008-07-11 17:30:00 · 981 阅读 · 0 评论 -
从com看代码的重用级别
1.C++类库的重用使用方式.h + lib一旦被编译进项目,该模块不再有类库的概念,它已经是项目的一部分了。在运行时,他不载入内存,有很多模块使用它,就有很多个拷贝存在内存中。当类库被patch后,没办法刷新已发布的项目。2.dll级别使用方式.h + lib + dll其实,dll样式的重用已经不错了,而且使用def文件可以保证导出函数的一致性。但是,我们无法处理异常等编译器相关的东西。但是,原创 2008-05-30 10:39:00 · 736 阅读 · 0 评论 -
复合文件函数
关于com如何,我不说废话,个人观点,com思想值得深入。 复合文件的方案是砸在com头上的苹果,但是个人观点,IStorage、IStream都是com接口,实际使用意义更大。宛如操作非结构化文件的时候只在使用若干api不用太了解底层的东西一样。所以简单列出几个常用方法,实际用的话去msdn吧。转载 2008-06-04 22:25:00 · 1077 阅读 · 0 评论 -
DCom跨机器调用
终于调用成功了。不过这个成功来的好晚。一周前我就在折腾这个问题,当时碰到问题在网上查了很多资料,甚至把dcomcnfg里自己觉得可能影响调用的安全认证全关了,还是不行,因当时有事忙别的,今天想起来这事继续较劲,终于成功了。之前不成功有两点: COSERVERINFO serInfo; serInfo.dwReserved1 = 0; serInfo.dwReserved2 = 0; s原创 2008-06-05 17:25:00 · 1214 阅读 · 0 评论 -
慎用TerminateThread
using namespace yaogl;ThreadMutex g_mutex;void tellme(void* p){ for (int i = 0;i < 100; ++i) { ThreadAutoMutex mutex(g_mutex); printf("%d/n",i); }}原创 2008-07-02 23:43:00 · 1979 阅读 · 0 评论