现在位置: 首页 > 自动控制 > 工业·编程 > 文章
2012-08-02 09:40 工业·编程 ⁄ 共 8471字 暂无评论
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在处理一对一数据时,在编程上提供快速通道。介绍一下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后面会见识到有序的好处。 下面举例说明什么是...
阅读全文
2012-08-02 09:32 工业·编程 ⁄ 共 784字 暂无评论
    如果你当前正在使用vs写了一个工程,那么你想现在就生成一个Lib文件,那么可以直接在“项目属性”上进行修改 项目属性-》配置属性-》常规-》配置类型中修改即可,如下图所示。 lib的使用方法: (1).h文件,即Lib中函数的声明。 (2)lib,将lib所在目录加入到附加库目录中。如下图所示,我生成的lib名称为API.lib,存放在了d:\Projects\API\Debug路径下面了。 (3)非常重要的一点:千万不要忘记加上下图所示...
阅读全文
2012-08-02 09:31 工业·编程 ⁄ 共 3048字 暂无评论
XML最近被吹的神乎其神,很多数据的交换,包括很多中间件系统,WebService,软件的配置文件,都是在用XML这个技术,的确是个好东西,下面写了个读取XML的代码片段,用的是MSXML的一些接口。 读的是BT软件的配置文件,XML内容如下: <?xml version="1.0"?> <BitComet Author="RnySmile" Version="0.1">        <Settings>    ...
阅读全文
2012-08-02 09:28 工业·编程 ⁄ 共 902字 暂无评论
.lib文件可以让别人来调用你的工程,但是只能允许C++调用,而且需要同时提供所要使用类的头文件以及该工程的.lib文件。 有两个工程 project A & project B,project A 中有类class a。现在想要在project B中使用类a的行为。 方法一: step1: 右键单击project A工程名->configuration properties->General->Configuration Type中,选择Static Library(.lib)。这样,在外层Debug文件夹中会产生以该工程名命名的.lib...
阅读全文
2012-08-02 09:26 工业·编程 ⁄ 共 545字 暂无评论
1创建静态库 要创建静态库,选择File->New菜单,弹出New对话框。选择Projects标签,在项目类型列表框中选择Win32 Static Library,在Name中输入MyLib,表明要创建一个MyLib.lib的静态库文件,下一步什么也不选,直接完成。 2.加入一个头文件(12345.h),里面加入代码 #ifndef _MYMATH_H #define _MYMATH_H extern "C" { int MyFunc(int n);//在大括号内进行函数的声明 } #endif 3.加入一个源文件(5678.cpp...
阅读全文
2012-08-02 09:16 工业·编程 ⁄ 共 302字 暂无评论
    lib是静态库,dll一般是动态链接库(也有可能是别的)比如要编译个exe,lib在编译的时候就会被编译到exe里,作为程序的一部分.而dll是不被编译进去,是运行的时候才调入的(可能是exe刚运行就调入,也可能运行了一半才调入) 用法     lib需要个.lib文件和一个.h文件,程序正常使用.h的函数,在链接选项里加入.lib文件就ok.     dll用法有2种,一种是 .h + .lib + .dll的,用...
阅读全文
2012-08-02 09:10 工业·编程 ⁄ 共 1406字 暂无评论
    图形为什么会闪烁的原因是:我们的绘图过程大多放在OnDraw或者OnPaint函数中,OnDraw在进行屏幕显示时是由OnPaint进行调用的。当窗口由于任何原因需要重绘时,总是先用背景色将显示区清除,然后才调用OnPaint,而背景色往往与绘图内容反差很大,这样在短时间内背景色与显示图形的交替出现,使得显示窗口看起来在闪。如果将背景刷设置成NULL,这样无论怎样重绘图形都不会闪了。当然,这样做会使得窗口的显示乱...
阅读全文
2012-08-02 09:09 工业·编程 ⁄ 共 4780字 暂无评论
1、将Invalidate()替换为InvalidateRect() Invalidate()会导致整个窗口的图象重画,需要的时间比较长,而InvalidateRect()仅仅重画Rect区域内的内容,所以所需时间会少一些。虫虫以前很懒,经常为一小块区域的重画就调用Invalidate(),不愿意自己去计算需要重画的Rect,但是事实是,如果你确实需要改善闪烁的情况,计算一个Rect所用的时间比起重画那些不需要重画的内容所需要的时间要少得多。 2、禁止系统搽除你的窗口 ...
阅读全文
2012-08-02 09:08 工业·编程 ⁄ 共 2288字 暂无评论
用途一: 定义一种类型的别名,而不只是简单的宏替换。可以用作同时声明指针型的多个对象。比如: char* pa, pb;  // 这多数不符合我们的意图,它只声明了一个指向字符变量的指针,  // 和一个字符变量; 以下则可行: typedef char* PCHAR;  // 一般用大写 PCHAR pa, pb;        // 可行,同时声明了两个指向字符变量的指针 虽然: char *pa, *pb; ...
阅读全文
2012-08-02 08:49 工业·编程 ⁄ 共 10295字 暂无评论
    Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的。而钩子是Windows系统中非常重要的系统接口,用它可以截获并处理送给其他应用程序的消息,来完成普通应用程序难以实现的功能。钩子可以监视系统或进程中的各种事件消息,截获发往目标窗口的消息并进行处理。这样,我们就可以在系统中安装自定义的钩子,监视系统中特定事件的发生,完成特定的功能,比如截获键盘、鼠标...
阅读全文