VC
caiqi1123
caiqi1123
展开
-
Dependency Walker使用说明
在Windows世界中,有无数块活动的大陆,它们都有一个共同的名字——动态链接库。现在就让我们走进这些神奇的活动大陆,找出它们隐藏已久的秘密吧! 初窥门径:Windows的基石 随便打开一个系统目录,一眼望去就能看到很多扩展名DLL的文件,这些就是经常说的“动态链接库”,DLL是Dynamic Link Library(即“动态链接库”)的缩写。从Microsoft公司推出转载 2012-02-14 16:09:27 · 2043 阅读 · 0 评论 -
基于MFC+VC平台下开发程序问题及技巧综合
Q1:*********************************VS2008下面对话框大小好像就是像素大小;可是VC6.0下资源视图对话框大小貌似不是像素大小;现在要在VC6.0下1024*768分辨率下开发界面,不知道怎么弄。A1:*********************************是VC6.0下资源视图对话框大小貌似不是像素大小>>不是像素,是di原创 2012-04-06 11:40:59 · 1026 阅读 · 0 评论 -
C语言标准IO: [先读再feof] VS [先feof再读]
刚学习C语言读取文件的时候,可能都遇到过这个“bug”,读到末尾时数据有重复。解决方案也是五花八门,甚至有人把数据先缓存了,再忽略掉最后一组....不妨看一段代码,两种解决方案,猜猜看,究竟哪一个方案是正确的。[cpp] view plaincopyprint?/* *方案一:先判断,后读取 */ while (!feof(fp)) {转载 2012-06-18 14:43:15 · 1823 阅读 · 0 评论 -
C++中extern “C”含义深层探索
1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不转载 2012-06-18 07:12:13 · 545 阅读 · 0 评论 -
vc6.0与vc2005配置对比
一.IDE基础配置1. 字体VC6中“Tools→Options→Format→Font”配置字体;VC2005中“工具→选项→环境→字体和颜色”配置字体。编写代码一般采用等宽字体,等宽点阵(位图)字体,相对矢量字体而言具有兼容性好和显示清晰的优点。常用的编程等宽字体包括Fixedsys(VC6和notepad御用字体)、Consolas、YaHei Mono。VC6默认可选字体只原创 2012-07-17 16:27:56 · 1890 阅读 · 0 评论 -
在Visual Studio 2010中配置VC++目录
VS 2010在“工具->选项->项目和解决方案->VC++目录”的功能已经被否决,不再提供设置,如下图: 但是每个工程都要在“项目->属性->配置属性->VC++目录”中一一设置如OpenCV之类的公共库文件目录是件很麻烦的事,如何解决呢?方案一:1、先打开任意一个VC项目,再打开VS2010的属性管理器(视图->其他窗口->属性管理器),如下图。双击任意“Mic原创 2012-07-31 21:14:15 · 2334 阅读 · 0 评论 -
静态库变为动态库,外部符号如何生成?
Q:I have .lib file with its header (.h) file. This file have a few functions that need to be used in C# application.After googling i found that i need to create a dynamic dll from this static libr原创 2012-09-22 01:52:38 · 1005 阅读 · 0 评论 -
不要混合使用运行时库的静态版本和动态版本
分类: 其他 2011-01-06 10:5223人阅读 评论(0)收藏举报目录(?)[+]Standard C++ LibraryWhat is the difference between msvcrt.dll and msvcr71.dll?What problems exist if an application uses both msvcrt转载 2012-10-04 19:09:43 · 1236 阅读 · 0 评论 -
LNK2005 LNK1169 Error and LNK4098 Warning LINK : warning LNK4075:
指定链接时的运行时库: 各编译选项对应的库情况:编译选项CRTCPPRT说明/MLlibc.lib 单线程库/MLdlibcd.lib 单线程调试库/MTlibcmt.lib转载 2012-10-04 18:51:20 · 1172 阅读 · 0 评论 -
VC++中调试Release版本时怎样设置断点
步骤如下: 1、在Project Settings里选Settings For为All Configurations。 2、在C/C++标签中,Debug info 选 Program Database。 3、在Link 标签中,Category选 Debug,选中Debug info 复选框和Microsoft format。 现在就可以像在调试版原创 2012-09-16 23:52:21 · 1492 阅读 · 0 评论 -
vs2010出现link错误: fatal error LNK1104,cannot open file ***.???.lib解决办法
在vs2010环境中,在link时,若出现:fatal error LNK1104,cannot open file ***.???.lib(***表示某个名称,???表示某个存在的库的名称)的出错原因在于:vs的附加依赖项填写错误。如何保证正确呢?---〉原创 2012-09-21 15:12:42 · 9361 阅读 · 0 评论 -
Ansi、Unicode、UTF8字符串之间的转换和写入文本文件
转载请注明出处http://www.cppblog.com/greatws/archive/2008/08/31/60546.html最近有人问我关于这个的问题,就此写一篇blogAnsi字符串我们最熟悉,英文占一个字节,汉字2个字节,以一个\0结尾,常用于txt文本文件Unicode字符串,每个字符(汉字、英文字母)都占2个字节,以2个连续的\0结尾,NT操作系统内核用的是这转载 2012-09-22 19:13:18 · 13032 阅读 · 0 评论 -
从 相对路径 说开来
从 相对路径 说开来 在Qt论坛经常看到网友抱怨: •QPixmap("dbzhang800.png") 加载图片不成功 •QFile("dbzhang800.txt") 打开文件失败 •... 遇到这种问题,我一般回答:请注意区分进程的"工作目录"与程序所在的目录 。但这种回答似乎还是显得太苍白了,既然如此,整理一下吧。 •用到了相对路径,你清楚"相对"是相转载 2012-09-25 15:09:25 · 1411 阅读 · 0 评论 -
VC++动态链接库(DLL)编程深入浅出
1.概论 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以简单的把DLL看成一种仓库,它提供给你一些可以直接拿来用的变量、函数或类。在仓库的发展史上经历了“无库-静态链接库-动态链接库”的时代。 静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib中的指令都被直接包含在最终生成的EXE文件中了。但是若使用DLL,该原创 2012-02-13 13:41:05 · 1278 阅读 · 0 评论 -
ASSERT VERIFY TRACE assert
#ifdef NDEBUG#define assert(exp) ((void)0)#else#ifdef __cplusplusextern "C" {#endif_CRTIMP void __cdecl _assert(void *, void *, unsigned);#ifdef __cplusplus}#endif转载 2012-11-25 17:51:58 · 883 阅读 · 0 评论 -
C++中接口与实现分离技术 ,DLL导出类
(1)什么是接口和实现以及区别请问类的实现是不是如下的解释: 用类定义一个对象,就像是int i; i就是int的实现一样,定义了就存在实际容量,那么定义的对象就是类的实现。那么接口指的是什么? 请知道的高手好像'实现'的解释那样举个例子,说明一下!一般地,我们称C++类声明中的“函数原型”为接口,它只是提供给了用户如何使用的具体细节,而隐藏了具体的代码;类似地,我们称类的原创 2012-06-14 19:23:53 · 3825 阅读 · 1 评论 -
在DLL中使用资源
在CSDN论坛上最常看见的关于DLL的问题就是如何在DLL中使用对话框,这是一个很普遍的关于如何在DLL中使用资源的问题。这里我们从Win32 DLL和MFC DLL两个方面来分析并解决这个问题。1.Win32 DLL 在Win32 DLL中使用对话框很简单,你只需要在你的DLL中添加对话框资源,而且可以在对话框上面设置你所需要的控件。然后使用DialogBox或者Create转载 2012-06-15 19:48:01 · 931 阅读 · 0 评论 -
DLL怎么样导出类,并在发布头文件屏蔽私有成员
创建了一个MFC extension DLL,添加类,定义如下: #ifdef XXXLIB #define XY _declspec(dllexport) #else if #define XY _declspec(dllimport) #endifclass XY CTest { public: int get(); CTest(); virtual原创 2012-06-14 19:27:14 · 3073 阅读 · 0 评论 -
vc6.0配置头文件,和库文件
三.附加头文件包含VC6.0中:VC6.0默认include包含路径:Tools>Options>Directories>Include files。对于特定项目的头文件包含,在“Project Setting>C/C++ (Category:Preprocessor)>Additional include directories”处添加附加头文件目录,相对目录参考*.ds转载 2012-02-14 14:39:18 · 2037 阅读 · 0 评论 -
调色板的原理
调色板只有图片的颜色小于等于256色的时候才有,16位高彩和24位32位真彩是没有调色板的. 调色板的存在的意义只是在当初486以前为了节省空间的一种采用索引的压缩算法,现在没有人这种东西。 调色板是为了节约空简所用的,相当于一个转载 2012-03-23 12:29:47 · 4937 阅读 · 0 评论 -
onpaint onprint ondraw区别
对于窗口程序,一般有个特点:窗口大部分的区域保持不变,只有不分区域需要重新绘制。如果将整个窗口全部刷新的画,就做了许多不必要的工作,因而,MFC采用了一套基于无效区的处理机制。在分析无效区处理之前,我们要明白一个现实,现在的机器还不够牛,如果够牛的话,我们干脆将整个窗口不断的重新绘制好了。事实上即使够牛也不行,对于一个单线程程序,通过一个while循环不断的刷新窗口,程序也无法相应其他消息(除非使转载 2012-03-23 14:12:08 · 1127 阅读 · 0 评论 -
LocalAlloc,VirtualAlloc,malloc,new的异同
1. 首先我们来看HeapAlloc:MSDN上的解释为:HeapALloc是从堆上分配一块内存,且分配的内存是不可移动的(即如果没有连续的空间能满足分配的大小,程序不能将其他零散的 空间利用起来,从而导致分配失败),该分配方法是从一指定地址开始分配,而不像GloabalAlloc是从全局堆上分配,这个有可能是全局,也有可能是 局部。函数原型为:LPVOIDHeapAlloc(转载 2012-03-27 15:05:52 · 751 阅读 · 0 评论 -
如何得到句柄和句柄对应的内存
先来看些权威的片断:... typedef unsigned int HANDLE; #define DECLARE_HANDLE(name) typedef UINT name DECLARE_HANDLE(HMODULE); DECLARE_HANDLE(HINSTANCE); DECLARE_HANDLE(HLOCAL); DECLARE_HANDLE(H转载 2012-03-27 14:53:22 · 2632 阅读 · 0 评论 -
c/c++/vc的经典学习网站(陆续添加中)
http://www.vckbase.com/原创 2012-03-19 10:26:59 · 681 阅读 · 0 评论 -
UpdateData、Invalidate、InvalidateRect和UpdateWindow及RedrawWindow
Invalidate和UpdateWindow的区别按引:Invalidate在消息队列中加入一条WM_PAINT消息,其无效区为整个客户区。而UpdateWindow直接发送一个WM_PAINT消息,其无效区范围就是消息队列中WM_PAINT消息(最多只有一条)的无效区。效果很明显,调用Invalidate之后,屏幕不一定马上更新,因为WM_PAINT消息不一定在队列头部,而调用Update原创 2012-04-04 21:12:24 · 1758 阅读 · 0 评论 -
由MATLAB的.m文件生成动态链接库的方法说明
1.把MATLAB编译器(MATLAB Complier: mcc)集成到 VC6.0中第一步:在安装MATLAB时,要安装MATLAB编译器(MATLAB Complier )。 第二步:在MATLAB命令提示符>>或者DOS命令框中键入命令: mex –setup 进行编译环境选择:VC6.0。 第三步:在MATLAB命令提示符>>或转载 2012-03-19 13:04:24 · 7342 阅读 · 0 评论 -
C++内存分配秘籍—new,malloc,GlobalAlloc
一. 在c中分为这几个存储区1.栈 - 由编译器自动分配释放2.堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。- 程序结束释放4.另外还有一个专门放常量的地方。- 程序结束释放原创 2012-03-17 21:51:09 · 996 阅读 · 0 评论 -
预编译头文件(.PCH)
一、预编译头文件使用经验:如果预编译头文件被正确使用时,它确实大大提高我们编程的效率(你工作中,有多少时间是在等编译完成?很多吧,这个时候一般都很无聊,无奈,浪费时间)。但是他太容易用错了. 下面是几种常见的错误用法.1) 在预编译头文件里include自己的头文件(当然, 如果你的头文件不经常变化, 也可以)原因:自己的头文件一般会经常变, 便利后导致预编译的东东重新编译, 降低了编原创 2012-06-04 09:56:04 · 1157 阅读 · 0 评论 -
WIN_静态库与动态库的加载、VC project参数设置
VC环境下的静态库使用一. 静态库包括.lib和.h文件,在工程中使用静态库分为3步: 在工程中加入静态库,有三种方法: **方法一:项目设置中引用.lib,project-> setting-> link-> object/library modules中添加.lib;(可以在这里指定路径,也可以在project>settings>link>input的A原创 2012-06-04 15:50:42 · 3969 阅读 · 1 评论 -
总结c++的“编译、链接”时引发的血案——动态、静态链接库
动态链接库生成一个动态链接库应包含两个文件 *.dll *.lib。lib是编译时需要的,dll是运行时需要的。如果要完成源代码的编译,有lib就够了。如果要使动态连接的程序运行起来,有dll就够了。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。Dll文件包含函数的实现,是可执行的代码。Lib文件是dll的一个映像文件,一般包含一些索引原创 2012-06-07 21:00:04 · 1329 阅读 · 0 评论 -
__declspec(dllexport)与__declspec(dllimport)
一、__declspec(dllexport): 将一个函数声名为导出函数,就是说这个函数要被其他程序调用,即作为DLL的一个对外函数接口。 通常它和extern "C" 合用,形式如下:extern "C"{__declspec(dllexport) RETURN_TYPE FUNCTION(){}} 这是由于在原创 2012-06-13 22:39:30 · 1181 阅读 · 0 评论 -
谈谈vc如何写dll(封装性,隐藏头文件,私有成员)
最近项目进行到一定阶段,老板要求把已完成部分分离开并把各模块封装成dll。用vs开发dll当然很简单,是用vs的向导可以很快写一个dll.但是我遇到了一些问题:刚开始只需要把各个模块的头文件和cpp加入到一个新的dll工程,然后又把导出类的成员函数和成员变量用到的结构体类型、类类型定义的头文件加进来,编译后dll就写出来了。问题是当我要使用这个dll时我就得把所有的相关头文件包含到引用dll的工程原创 2012-06-14 19:19:07 · 2671 阅读 · 0 评论 -
vc 消息与事件的区别
事件是一个动作——用户触发的动作。 消息是一个信息——传递给系统的信息。 事件与消息的概念在计算机中较易混淆,但本质不同: 事件由用户(操作电脑的人)触发且只能由用户触发,操作系统能够感觉到由用户触发的事件,并将此事件转换为一个(特定的)消息发送到程序的消息队列中。 这里强调的是: 可以说“用户触发了一个事件”,而不能说“转载 2013-06-04 17:40:38 · 1181 阅读 · 0 评论