现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-10-09 20:22 工业·编程 ⁄ 共 3782字 暂无评论
    Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。     Debug版本包括调试信息,所以要比Release版本大很多(可能大数百K至数M)。...
阅读全文
2012-10-09 20:10 工业·编程 ⁄ 共 1014字 评论 1 条
在程序使用Dll有两个加载方式,一种是动态方式,就是LoadLibrary载入Dll,然后用GetProcAddress来加载需要使用的Dll函数。另一种就是静态连接方式,将dll生成的lib,加入到工程中,然后使用时就像使用Win API一样使用。 今天我们不讨论动态载入的方式,我们采用静态载入的方式。但有一个问题,由于很多Dll发布的时候,根本就不提供lib,也或许你在使用一个未公开的dll,没有lib我们就不能静态加载,我手工来生成吧。 手工生成 可...
阅读全文
DEBUG和RELEASE 版本差异及调试相关问题: I.        内存分配问题 1.          变量未初始化。下面的程序在debug中运行的很好。       thing * search(thing * something)         BOOL found;         for(int i = 0; i...
阅读全文
2012-10-08 23:32 工业·编程 ⁄ 共 999字 暂无评论
    现在软件架构师满天飞,是个写代码的都称自己为软件架构师,就象开个公司管上四五号人就给自己按个CEO头衔一样,着实让人好笑。于是到网上GOOGLE了一下看看软件构架师具体是个啥东东,有想做货真价实的构架师,就朝着那方向努力吧。网摘如下: 软件之路:软件架构师     软件架构师的职责:将客户的需求转换为规范的开发计划及文本,并制定这个项目的总体架构,指导整个开发团队完成这个计划...
阅读全文
    首先声明本人并非COM/ATL高手,尽管本人接触他们已经有4年了,但是因为工作中的一些原因一直未能深入研究和广泛的实际的使用它们。不过回想学习它们的痛苦经历,实在是有点不堪回首。在此仅以此文和大家探讨一下学习它们的路径,以让后来人少走弯路。 》》》学习C++从入门到精通的经典书籍(修正版)     我个人认为学习COM是一件不简单的事情,只有一步一个脚印踏踏实实的理解每个观点和理论...
阅读全文
2012-10-06 23:30 工业·编程 ⁄ 共 3208字 暂无评论
就像我在应用架构设计总结这篇BLOG中提到的那样,面向对象的系统设计就好象一群人翻越一座陡峭的悬崖,只要任何一个人没有翻越过去,那么就无法设计出真正的面向对象系统。 归结一下,在你打算进行面向对象的系统之前,你一定要考虑是否已经解决或能解决以下的问题: 一、对象的持久化 对象的持久化是最容易被想到的问题,同时也是最难解决的问题。由于关系型数据库模型和面向对象模型存在一些比较大的差异,如何将你的对象保存...
阅读全文
2012-10-05 23:21 工业·编程 ⁄ 共 3568字 暂无评论
1、boost::any boost::any是一种通用的数据类型,可以将各种类型包装后统一放入容器内,最重要的它是类型安全的。有点象COM里面的variant。 使用方法: any::type() 返回包装的类型 any_cast可用于any到其他类型的转化 #include <boost/any.hpp> void test_any() {     typedef std::vector<boost::any> many;     many a;     a.push...
阅读全文
2012-10-04 23:19 工业·编程 ⁄ 共 654字 暂无评论
在一个块作用域或者函数体内的临时变量(非指针),例如 C1 f() {   C1 c;   return c; } 此时返回值是个临时变量,不是c,而是C1(c)构建的一个临时变量 C1& f() {   C1 c;   return c; } 此时返回值是一个refernce故非临时变量,是对变量c的一个引用,而由于c的作用域已经结果即c已经消亡,故该reference是未定的一个对象,故此写法不合适 在完面调用时 C1 c=f(),则...
阅读全文
2012-10-03 23:14 工业·编程 ⁄ 共 3340字 评论 1 条
   boost是一套开放源代码的,高度可移植的C++库。它相当于C++标准库(STL)的改进与扩展。并且,它其中的不少模块,已被下一代C++标准库采用。的确,boost库非常注重与C++标准库之间协同性,用户对STL的许多学习或使用的体验,在接触boost时,会很自然地“似曾相识”。 定位上,boost 库希望自己是一个可用于广泛的、不同业务方向的应用都能使用的基础库——这完全和STL的定义一致,但STL太过于基础了,我们来做一个比较吧...
阅读全文
2012-10-02 21:43 工业·编程 ⁄ 共 2502字 暂无评论
如果您使用Windows,如果您经常使用微软的程序,或者您热衷于VB编程,抑或您流连于国际互联网,您不会不经常接触到OLE和ActiveX等拗口的洋文,但是您知道它们到底是啥意思,有啥来头吗?如果您有兴趣,请让我说给您听。我们首先从OLE谈起。 一、过去的OLE和今天的OLE 最初的OLE含义是指在程序之间链接和嵌入对象数据,它提供了建立混合文档的手段(资深Windows 3.X 用户可能记得当初在Word6.0中插入一个图形的新奇和喜悦),使...
阅读全文