2013年12月3日

转:跨dll操作fopen的返回值导致出错

摘要: 从老板的blog那里抄来的,一个很神奇的bug,雷死:源地址http://www.cnblogs.com/len3d/p/3406294.html在设置成/MD 或 /MDd 不会导致出错设置成/MT 或 /MTd 的情况下会导致出错看了CRT的实现,估计是因为fopen创建了CriticalSection来保护文件,但是在/MT的情况下,一个DLL里面的CriticalSection是不能被另外一个DLL使用的。只是猜测啊。。。。。。。。。。。。。。。看了VS2008 里的crt 源码,发现_iob这个全局变量,而每个操作FILE指针的函数都要,操作这个变量处理多线程的功能而MD模式 把cr 阅读全文

posted @ 2013-12-03 20:43 Wen tao.Wang 阅读(356) 评论(0) 推荐(0) 编辑

Subsurface scattering

摘要: Subsurface scattering 中文就是指的是次表面散射,也就是描述半透明至透明的物体和光相互作用的一种现象,可以想象现实生活中的蜡烛 玉石等等在光照下的颜色。这些物体之所以拥有这样的外观是因为光线进入物体内部后往往经过多次散射才从物体表面另一点射出。与普通的表面反射或者是纯透明材质的折射不同。 次表面散射材质的基于物理的渲染一直是个很难的课题,这是因为在应用光线路径追踪方法去追踪光线时,往往需要追踪几百次上千次的物体内的散射情况,这是个极度昂贵的行为。此外,采样对于次表面材质的计算也是个大问题。后面会说到。描述次表面散射可以用一个叫BSSRDF的函数来表示,理论上来说对它积分(用 阅读全文

posted @ 2013-12-03 20:42 Wen tao.Wang 阅读(912) 评论(0) 推荐(0) 编辑

DLL/LIB 静态与动态链接 MT/MD的区别

摘要: 这些东西算是编写C++大型软件在处理互相之间的依赖关系,或者编译开源库的时候会经常用到的知识,有时候经常会遇到一些让人崩溃的链接错误,比如 error LNK 201 205 等等,往往是配置不对引起的。在《Game Engine Architecture》中也专门花了一个章节讲这些事情,因此写下来仅供以后参考。我们都知道C++ 编译过之后会生成目标文件 也就是.obj 或者.o格式的文件。目标文件就是编译器翻译过的机器代码,但是目标文件并不能被机器执行,因为其内部的内存地址并没有被确定,同时所有的外部符号没有被解释(也就是没有连接) 而静态库lib就是obj文件的打包,linker用lib生 阅读全文

posted @ 2013-12-03 20:39 Wen tao.Wang 阅读(857) 评论(0) 推荐(0) 编辑

上海NV面试被虐经历

摘要: WARP随便说说Skip to content首页上海NV面试被虐经历Byadmin|2013年8月17日0 Comment职位:Mobile Graphic Tools Engineer.这个职位主要对C++要求很高,对OpenGL API 要求很了解,面的很水,本身自己很紧张,对原理了解的也不够多。靠回忆写了点。。C++:1.类的初始化列表这个东西大家都用,也知道能提高效能,但是关于它的原理。。。好吧,看这个:三种情况下需要使用初始化成员列表:一,需要初始化的数据成员是对象的情况;二,需要初始化const修饰的类成员;三,需要初始化引用成员数据;对于第一点,当我们的类成员里有个对象,而我们 阅读全文

posted @ 2013-12-03 20:38 Wen tao.Wang 阅读(716) 评论(0) 推荐(0) 编辑

导航