04 2011 档案

摘要:“学会深入挖掘一些工具、技术和技艺...深入意味着要理解导致一种设计的推动力,而不仅仅是设计的细节...不只是鹦鹉学舌似的重复着从别人哪里听来的东西。” 程序库在计算机技术的最早期就出现了,因为程序员意识到通过重用程序代码片段了一节省大量的时间和精力。 共享库有两种:静态链接库(lib) 和动态链接库(dll)。 我猜你肯定对他们不那么陌生,也许你有有时会遇到一大堆的莫名奇妙链接bug,google了好一阵,上面说修改你的链接选项/MD /MT,照做,ok done;也许你在LoadLibrary时会出总是返回NULL,于是google...;也许你在DllMain函数见鬼了,What th. 阅读全文
posted @ 2011-04-15 22:39 nickolas 阅读(1211) 评论(1) 推荐(2)
摘要:把需要读的书按照优先级排列出来,一方面鼓励自己,另一方面希望能和有共同理想的人共勉。--在读--Windows核心编程: Windows平台研发人员的必读书籍,详细的讲解Windows进程线程、内存、IO等机制代码之美Real-time rendering3rd ed.:图形学知识基础Computer Algorithms 3rd ed.: 计算机算法,最基础的是最重要的操作系统设计与实现 第三版Move Effective C++: C++入门必读书籍之一,介绍C++效率、安全的细节深度探索C++对象模型:C++进阶经典书籍之一,COM的基础编程之美C++设计新思维泛型编程与设计模式之应用- 阅读全文
posted @ 2011-04-12 20:23 nickolas 阅读(595) 评论(2) 推荐(2)
摘要:"No-one normally bothers to understand what is that is does exactly, until strange or funny things start happening. " DllMain我们都不会陌生,让我们先看看MS怎么说的MSDN。 哦,仅仅如此么?《Windows核心编程(第5版)》有比较稍微详细的介绍,我整理了下: 根据fdwReason参数,有四种情况DllMain函数会被调用。1.DLL_PROCESS_ATTACH: 系统第一次将一个DLL映射到进程地址空间时。执行进程相关的初始化工作。 每个DL 阅读全文
posted @ 2011-04-12 15:59 nickolas 阅读(1202) 评论(0) 推荐(0)
摘要:Application Specific Paths for DLL LoadingConfiguring workstations to handle shared DLLs is difficult. In many organizations, the PATH environment becomes a point of contention between project teams. Configuring a PATH specific to your application can solve the problems associated with using a commo 阅读全文
posted @ 2011-04-11 16:49 nickolas 阅读(271) 评论(0) 推荐(0)
摘要:1.链接过程:程序加载->重定位->符号解析2.连接器输入:目标文件、库、命令文件连接器输出:可执行文件、加载映射信息、调试器符号3.obj文件结构:段(segments)、符号表(symbol table)链接器第一遍扫描obj文件,创建一个列出输入文件中的所有段的段表和包含所有导入导出符号的符号表。确定输出文件布局。第二遍扫描负责重定位,和动态链接时,运行时链接器解析动态符号所需信息。当链接器处理完所有obj文件之后,如果还存在未解析的improted name他就会查找库,将输出这些未解析名字的库连接起来。(静态链接) 阅读全文
posted @ 2011-04-10 16:48 nickolas 阅读(191) 评论(0) 推荐(0)
摘要:问题1——环境设置问题1.确认是在debug模式下运行2.确认正确的项目设置:链接器->调试->生成调试信息(是), C++->常规->调试信息格式(/Zi or /Z7)问题2——当前代码与当前执行的程序不匹配1.确认运行的是最新生成的代码:不是在运行中编辑的2.当进行dll调试的时候确保加载的是代码对应的dll,可以通过设置项目依赖项或自定义生成避免这个问题如果上面的都没有问题,尝试重新启动VS 阅读全文
posted @ 2011-04-07 17:36 nickolas 阅读(10970) 评论(0) 推荐(0)
摘要:面向对象五大原则即SOLID,是类设计的最基本原则,可以说是面向对象的基础,了解OOP的程序员应该很熟悉这些原则http://www.cnblogs.com/tqsummer/archive/2010/07/11/1775205.htmlSRP:Single Responsibility Principle, 单一职责原则http://blog.csdn.net/sghys/archive/2008/03/20/2199270.aspxOCP:Open Close Principle ,开闭原则http://blog.csdn.net/sghys/archive/2008/03/20/2199 阅读全文
posted @ 2011-04-06 13:30 nickolas 阅读(813) 评论(0) 推荐(0)
摘要:1.分析问题 首先分析模块输入、输出,可以画流程图、类结构图帮助理解程序结构。2.分析问题 是的,还是分析问题。当设计的模块需要几天,甚至几周的模块,最好出去转转换个脑子,最先想到的办法通常不是最好的,另外以前的经验也往往让我们错误的估计问题。3.测试结论 当我们有了一个思路,我们不是马上实现它,而是先验证它是否真的管用。这个过程中会对问题有更深的认识,那么,修改前面的结论吧。4.重构 我们对问题有了比较清晰的理解,对现有的模块也有了一个可以工作的方案。那么着手修改已有的代码吧,先保持原有的功能不变,让已有的代码能够符合我们新的功能,结构。修改之前一定备份已有的代码。5.测试现有功能 已有的代 阅读全文
posted @ 2011-04-03 15:18 nickolas 阅读(293) 评论(0) 推荐(0)