
vc++
wulei202
这个作者很懒,什么都没留下…
展开
-
在VC中链接动态链接库的方法简要说明
方法一:windows提供了一套函数,用于加载动态链接库中的符号(函数和变量),调用这些函数去加载:1.HINSTANCE LoadLibrary( LPCTSTR lpLibFileName);2.FARPROC GetProcAddress( HMODULE hModule, LPCWSTR lpProcName);3.BOOL FreeLibrary( HMODULE hLibM转载 2012-05-04 19:43:56 · 548 阅读 · 0 评论 -
STL中map用法详解
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的,后边我们会见识到有转载 2012-05-22 20:10:21 · 444 阅读 · 0 评论 -
C++赋值语句讲解
前面已介绍,赋值语句是由赋值表达式加上一个分号构成。(1)C++的赋值语句具有其他高级语言的赋值语句的功能。但不同的是: C++中的赋值号“=”是一个运算符,可以写成 a=b=c=d;而在其他大多数语言中赋值号不是运算符,上面的写法是不合法的。(2) 关于赋值表达式与赋值语句的概念。在C++中,赋值表达式可以包括在其他表达式之中,例如 if((a=b)>0)转载 2012-06-05 20:43:08 · 3322 阅读 · 0 评论 -
预编译指令
#if ... #else ... #endif//与#if对应 作为一个编译“开关”,比如: #if(条件满足) 执行代码1 #else 执行代码2 #endif 假如编译时,确实满足条件,则生成的程序文件(.exe文件)中不会有执行代码2的。如果用普通if语句,生成的程序转载 2012-06-06 08:41:31 · 1804 阅读 · 0 评论 -
vs 提示错误error C2017: illegal escape sequence
Visual Studio 2010 - Visual C++编译器错误 C2017非法的转义序列转义序列(如 \t)出现在字符或字符串常数之外。下面的示例生成 C2017:// C2017.cppint main() { char test1='a'\n; // C2017 char test2='a\n'; // ok}当 stringize原创 2012-05-15 11:29:53 · 19041 阅读 · 0 评论 -
vs2005 warning C4996 解决办法
一、找到一个方法:VC6---选项Project | Configuration Properties | C/C++ | Preprocessor | Preprocessor Definitions添加_CRT_SECURE_NO_DEPRECATE和_SCL_SECURE_NO_DEPRECATEVS2005 项目属性---C/++ --->预处理定义下-》配置 -》下面添加转载 2012-06-01 17:55:19 · 2202 阅读 · 0 评论 -
c++面向对象编程必备“良方”
药方1 ☞ 必需时刻明白面向对象编程中要扮演的两个角色,一个就是你,类的设计者,一个就是用户,类的使用者,你的设计是针对用户而言的,当然你也可能是身兼两职,同时是设计者又是用户。药方2 ☞ 设计一个类时,将声明放于头文件,定义放在cpp文件中,因为类是给用户使用的,将声明放在头文件中,用户便可以方便使用,而定义在cpp文件中主要是为了两点,一提高编译效率,二避免用户包含文件后发生重定义。转载 2012-06-01 17:40:59 · 484 阅读 · 0 评论 -
C++编译链接过程
C++程序从编译到链接然后再到调用的整个过程如下。只是个人最近观点,希望能与志同道合的同学一起讨论。注:这里只是研究C++的主流编译过程,与Java没有任何关系,因为使用的技术完全不一样(Java是编译和解释结合的语言)。并且由于不同的编译器厂商对于程序的编译过程不尽相同,但是主要流程还是一样的。其实长久以来我就一直很不清楚obj文件的内容到底是什么,有人说是汇编,有人说是机器转载 2012-05-30 16:51:15 · 678 阅读 · 0 评论 -
C++中的头文件和源文件
一、C++编译模式通常,在一个C++程序中,只包含两类文件——.cpp文件和.h文件。其中,.cpp文件被称作C++源文件,里面放的都是C++的源代码;而.h文件则被称作C++头文件,里面放的也是C++的源代码。C+ +语言支持“分别编译”(separate compilation)。也就是说,一个程序所有的内容,可以分成不同的部分分别放在不同的.cpp文件里。.cpp文件里的东西都是相对转载 2012-05-30 15:59:46 · 622 阅读 · 1 评论 -
C++ 调试宏 __LINE__ __FILE__ & UNICODE使用方法
跟踪调试宏__LINE__, __FILE____DATE__ __FILE__ __LINE__ __FUNCDNAME____STDC__ __TIME__ __TIMESTAMP__使用方法:printf("%s %d %s",__DATE__,__LINE__,__FILE__);UNICODE 使用方法:#include #define WIDEN转载 2012-05-29 09:36:47 · 1844 阅读 · 0 评论 -
C++中string转WCHAR*的方法
我们在程序开发时可能会碰到一样函数的参数是WCHAR*的时候,可以我本身的要传入的变量是string类型的,这时类型转换会让我们花去不必要的时间,那么怎样能节省这些时间呢? 我的办法是包含#include ,在这个库中有我们要用的函数CA2W(LPCSTR),这样我们就可以节约一些时间用于逻辑上的开发了. CW2A(LPCWSTR) //可以将wchar*转换为转载 2012-05-29 09:35:18 · 6099 阅读 · 0 评论 -
VC实现Button响应WM_LBUTTONDOWN和WM_LBUTTONUP
几天弄个程序,需要实现Button响应WM_LBUTTONDOWN和WM_LBUTTONUP功能,查了很多资料终于弄好了,特意记录下来,以备不时。有两种方法,一种是利用PREMSG另一种是自己写BUTTON后者的整体的思路是:继承CButton类并添加WM_LBUTTONDOWN和WM_LBUTTONUP消息响应。一、功能要求:1、在某个按钮上按下鼠标时执行任务,释放鼠标时停止;转载 2012-05-10 20:46:31 · 8817 阅读 · 0 评论 -
Windows中_stdcall及WINAPI理解
WINAPI是_stdcall的别名_stdcall 和 __cdecl 都属于调用方式 一般我们在声明函数时都没有显示的说明调用方式,因为不同语言都有不同的默认调用方式 //******************************// _stdcall _stdcall是Pascal程序的缺省调用方式,通常用于Win32 Api中,由主调用函数采用从右到左的压栈方式进行参原创 2012-05-09 09:32:39 · 3726 阅读 · 1 评论 -
可变参数宏__VA_ARGS__
在 GNU C 中,宏可以接受可变数目的参数,就象函数一样,例如:#define pr_debug(fmt,arg...) \printk(KERN_DEBUG fmt,##arg)用可变参数宏(variadic macros)传递可变参数表你可能很熟悉在函数中使用可变参数表,如: void printf(const char* format, …);直到最近,可变参数表还转载 2012-05-09 10:29:41 · 480 阅读 · 0 评论 -
c++ assert()分析
assert宏的原型定义在assert.h中,其作用是如果它的条件返回错误,则终止程序执行. 原型定义: 显示代码 打印1 #include "assert.h" 2 void assert( int expression ); assert的作用是现计算表达式 expression ,如果其值为假(即为0),那么它先向stderr打印一条出错信息,然后通过调转载 2012-05-09 10:24:45 · 572 阅读 · 0 评论