
VC
MAZHEN1986
这个作者很懒,什么都没留下…
展开
-
c/c++中出现“undefined reference to”的解决
http://blog.creke.net/765.htmlhttp://blog.creke.net/765.htmlundefined reference to”的意思是,该函数未定义。如果使用的是gcc,有以下检查方案:如果提示未定义的函数是某个库的函数。检查库时候已经安装,并在编译命令中采用-l和-L参数导入库。如果提示未定义的函数是程序中的函数。检查是否在头文转载 2013-02-05 16:31:21 · 4410 阅读 · 0 评论 -
C++优秀经典教程推荐
原文http://hi.baidu.com/idealsoft/blog/item/3269d3fa44679f9259ee9082.html,记下该地址不仅仅为了版权更因为作者的风骨VC无穷视界的几本C++经典1. C++ Primer, 难度系数 0.2, 推荐指数 0.72. Effective C++,转载 2012-07-02 17:04:58 · 964 阅读 · 0 评论 -
delete和delete[] 的区别
#include ; int main(){ char* pc = 0; char* pc2; int i = 21; pc = new char; std::cout delete pc; std::cout pc转载 2012-07-02 16:03:03 · 407 阅读 · 0 评论 -
c++ 函数模板 编译模式 export 关键字
http://topic.youkuaiyun.com/t/20060629/11/4850102.html1.函数模版的编译模式分两种:完全包含编译模式和局部编译模式(需要用export关键字) 2.不同的编译器对这两种编译模式的支持各不相同,但一般都支持完全包含编译模式,具体支持情况需要参照具体使用的编译器文档 模版函数和普通函数在使用的时候有一定的区别: (1)普转载 2012-07-11 13:01:09 · 1425 阅读 · 0 评论 -
error C2011: 'fd_set' : 'struct' type redefinition 。。。
C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\ws2def.h(91) : warning C4005: 'AF_IPX' : macro redefinition1> C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\winsock.h(460) : see原创 2012-06-20 22:46:36 · 5686 阅读 · 1 评论 -
调试经验总结-VC下的错误对话框
这里所说的VC下的错误对话框时指在VC中开调试器运行程序时,IDE弹出的对话框。1.不是错误的错误:断言 .将断言视为错误其实有点可笑,但是因为有些同学甚至不知道这个,所以我稍微提一下。断言对话框大致上类似于:断言对话框是由assert引起的,在对话框上通常会给出表达式,例如assert( 0 ); 弹出对话框时就会将0这个表达式显示出来(Expression:0)转载 2012-05-02 22:44:24 · 603 阅读 · 0 评论 -
lint使用简介
LINT工具是一种软件质量保证工具,许多国外的大型专业软件公司,如微软公司,都把它作为程序检查工具,在程序合入正试版本或交付测试之前一定要保证通过了LINT检查,他们要求软件工程师在使用LINT时要打开所有的编译开关,如果一定要关闭某些开关,那么要给出关闭这些开关的正当理由。 可想而知,如果从我们编码后第一次编译程序时就使用LINT来检查程序,并且保证消除所有的LINT告警,我们转载 2012-05-25 13:11:15 · 1174 阅读 · 0 评论 -
VC的编译开关参数大全
vc可以可以通过Settings -->Project-->C/C++-->Customize来设置这个编译开关VC 编译命令开关 /C:在预处理输出中保留注释语句/c:只编译,不连接,相当于在"Build"菜单下选择了"Compile"/D:定义常量和宏,与源程序里的#define 有相同效果/E:预处原创 2012-05-25 13:01:41 · 686 阅读 · 0 评论 -
静态代码检查工具PC-Lint(用户手册)
http://blog.youkuaiyun.com/orbit/article/details/971457摘要:C/C++语言的语法拥有其它语言所没有的灵活性,这种灵活性带来了代码效率的提升,但相应增加了代码中存在隐患的可能性。静态代码检查工具PC-Lint则偏重于代码的逻辑分析,它能够发现代码中潜在的错误,比如数组访问越界、内存泄漏、使用未初始化变量等。本文将介绍如何安装和配置PC-Lint转载 2012-05-25 13:19:57 · 4020 阅读 · 0 评论 -
VS2008配置PC Lint (静态代码检查工具PC-Lint)
http://hi.baidu.com/bellgrade/blog/item/23929a8e054882f9f01f36e5.htmlPC-Lint的典型应用:1、检查区分int和BOOL。(typedef int BOOL;)2、未初始化的变量……官方地址:http://www.gimpel.com/也可以到优快云下载PC Lint 9Step1:下载完转载 2012-05-25 13:17:55 · 698 阅读 · 0 评论 -
ANSI C 前值类型转换bug
int array[] = {23, 34, 12,17,204,99};#define Total_ELEMENTS sizeof(array)/sizeof(array[0]) int main() {int d = -1, x = 0;if(d x= array[d+1];printf("%d\n", x);return 0; }size原创 2012-05-24 18:59:58 · 403 阅读 · 0 评论 -
[OpenGL] 基于win32api建立多窗口GL应用程序
建立多窗口openGL程序,可以用来制作各种GL控制或者多视图GL程序,为以后设计组态openGL引擎试验。 基础知识 1.OpenGL与其他窗体应用程序消息循环上的不同这个大家都知道,因为其他窗体应用程序不需要实时绘制,但需要实时监听消息响应,所以为了提高性能,openGL和其他窗体程序的消息循环写法有一点点不一样。(就因为如此,所以我们需要使用多转载 2012-05-24 23:32:50 · 1372 阅读 · 0 评论 -
精确获取时间(QueryPerformanceCounter)
LARGE_INTEGER tima,timb; QueryPerformanceCounter(&tima);在 Windows Server 2003 和 WindowsXP 中使用 QueryPerformanceCounter 函数的程序可能执行不当QueryPerformanceCounter 來精確計算執行時間QueryPerformanceCounter 來精转载 2012-05-23 20:54:16 · 514 阅读 · 0 评论 -
VS错误积攒
当map/set的某一个元素已经指向空,那么*p就会出现这种错误1、当有vector成员vec但是为空, 即size() == 0时候,如果调用vec[i就会出现这种情况,或是访问越界也会出现这种错误原创 2012-05-04 01:31:46 · 479 阅读 · 0 评论 -
.obj, .lib, .dll, .exe的关系
lib是和dll对应的。 lib是静态的库文件,dll是动态的库文件。 所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的时候不再需要lib。 所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运行。 lib, dll, exe都算是最终的目标文件,是转载 2012-05-22 09:44:23 · 349 阅读 · 0 评论 -
Visual Studio 2008 环境变量的配置
http://www.cnblogs.com/waterlin/archive/2011/10/31/2230341.html在调试 Visual Studio 2008 程序时,经常有一些动态链接库(即 dll 文件)需要加载到工程里,这样才能依赖第三方库进行程序调试。这些动态链接库,往往都是测试版本或是开发中的版本,或者会有若干个版本;这个时候,如果直接把 dll 所在目录转载 2012-05-22 09:39:45 · 429 阅读 · 0 评论 -
extern数组与extern指针
http://blog.youkuaiyun.com/hxg130435477/article/details/4012686extern数组与extern指针数组名代表了存放该数组的那块内存,它是这块内存的首地址。这就说明了数组名是一个地址,而且,还是一个不可修改的常量,完整地说,就是一个地址常量。数组名跟枚举常量一样,都属于符号常量。数组名这个符号,就代表了那块内存的首地址。注意了!不是数转载 2012-05-21 18:01:50 · 470 阅读 · 0 评论 -
C++多重继承和虚拟继承对象模型、效率分析
http://blog.youkuaiyun.com/ocean2006/article/details/5836210 本文简单介绍多态和多重继承、虚拟继承的基本概念。随后重点分析了C++中对象模型之间的差异和运行效率。一、多态 C++多态通过继承和动态绑定实现。继承是一种代码或者功能的传承共享,从语言的角度它是外在的、形式上的,极易理解。而动态绑定则是从语言的底层实现保证了多态转载 2012-07-02 13:33:35 · 566 阅读 · 0 评论 -
随笔记录-模板类成员变量初始化
templateclass textClass{public:static const int _detail;};templateconst int textClass::_detail = 1;原创 2012-07-14 14:15:30 · 722 阅读 · 0 评论 -
重载()操作符
http://blog.youkuaiyun.com/neonlight/article/details/6065196C++项目中,经常会遇到使用重载()操作符的地方,请看下面一个例子:[cpp] view plaincopy#include using namespace std; class Clastype {转载 2012-07-14 19:25:09 · 405 阅读 · 0 评论 -
获取电脑当前时间c++
#include #include using namespace std;string make_daytime_string(){ time_t t = time(0); char tmp[64]; strftime( tmp, sizeof(tmp), "%d %m %Y %X %Z",localtime(&t) ); string s =tmp; return s原创 2013-01-08 11:27:36 · 1411 阅读 · 0 评论 -
C/C++中static关键字详解
http://www.cnblogs.com/yc_sunniwell/archive/2010/07/14/1777441.html静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机转载 2012-11-11 14:27:31 · 791 阅读 · 0 评论 -
C++编程学习50个经典网站 强力推荐
http://blog.youkuaiyun.com/xiaowall/article/details/7757806C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。1、http:转载 2012-10-06 17:21:05 · 1791 阅读 · 0 评论 -
LIB和DLL的区别与使用
共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅转载 2012-09-02 19:52:05 · 477 阅读 · 0 评论 -
win32 console
win32 project1、int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow)2、int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevIns原创 2012-09-02 20:00:36 · 796 阅读 · 0 评论 -
详解C中volatile关键字
http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764231.html volatile提醒编译器它后面所定义的变量随时都有可能改变,因此编译后的程序每次需要存储或读取这个变量的时候,都会直接从变量地址中读取数据。如果没有volatile关键字,则编译器可能优化读取和存储,可能暂时使用寄存器中的值,如果这个变量由别的程序更新了转载 2012-08-24 10:10:54 · 815 阅读 · 0 评论 -
VC win32 键盘 鼠标事件
VC 中用 KeyPress 表示键盘响应的所有事件,包括 OnKeyDown 事件(键按下)、 OnKeyUp 事件(键按下后弹起)和 OnKeyPress 事件(按了某个键)。OnKeyuUp 事件的语法为 void Object1:: OnKeyUp( UINT nChar, UINT nRepCnt, UINT nFlags );OnKeyDown 事件的语法为 void转载 2012-08-20 18:35:04 · 2307 阅读 · 0 评论 -
error C2065: 'SOCKET' : undeclared identifier error C2146: syntax error : missing ';' before identi
1>c:\program files\mysql\mysql server 5.0\include\mysql_com.h(183) : error C2146: syntax error : missing ';' before identifier 'fd'1>c:\program files\mysql\mysql server 5.0\include\mysql_com.h(183)原创 2012-07-28 15:07:27 · 3870 阅读 · 0 评论 -
内存越界的概念和调试方法heap corruption
调试了两天,搞定了项目里一个内存越界的bug,于是记录一下,备查。所谓内存越界(Heap Corruption),就是指当内存输入超出了预分配的空间大小,就会覆盖该空间之后的一段存储区域,导致系统异常。越界访问是非常常见的一种黑客手段。内存越界通常有如下的表现:1 程序出现异常 异常的现象有很多,如:代码突然跑到不相干的地方去执行,访问异常,正常的变量操作也报错…转载 2012-08-11 14:15:58 · 1826 阅读 · 0 评论 -
同步多线程的同步机制
http://baike.baidu.com/view/2808915.htm 1、 Event 用事件(Event)来同步线程是最具弹性的了。一个事件有两种状态:激发状态和未激发状态。也称有信号状态和无信号状态。事件又分两种类型:手动重置事件和自动重置事件。手动重置事件被设置为激发状态后,会唤醒所有等待的线程,而且一直保持为激发状态,直到程序重新把它设置为未激发状态。自转载 2012-08-07 19:48:45 · 750 阅读 · 0 评论 -
Call by value Call by pointer Call by reference
http://csie-tw.blogspot.com/2010/03/call-by-valuecall-by-pointercall-by.html在C語言裡裡,傳遞參數的2種方式,分別是Call by value、Call by pointer。而在C++裡多了一個Call by reference的方法。Call by value參數以數值方式傳遞,複製一個副本給另一個转载 2012-08-07 19:42:58 · 2262 阅读 · 0 评论 -
修改路径的后缀形式
char *fileMHB = new char[200];int len = strlen(_fileName);strcpy(fileMHB, _fileName);int idx(0);for (idx = strlen(_fileName); idx > 0; idx--){if(fileMHB[idx] == '.')break;}coutif原创 2012-08-05 16:15:46 · 496 阅读 · 0 评论 -
内存管理之内存池的设计
http://hi.baidu.com/wuzsh/blog/item/9db9b63eda918cfc838b1368.html 如何更好的管理在应用程序中内存的使用,同时提高内存使用的效率,这是值得每一个做开发的人深思的问题。内存池(Memory pool)提供了一种比较可行的解决方案。下面就一般内存池的原理与设计进行探讨。 一般的内存池的使用,分为以下几个过程:转载 2012-07-17 19:52:40 · 558 阅读 · 0 评论 -
VC++程序的编译链接过程
http://michael0521.iteye.com/blog/1058763假如我们在VC++6.0 Studio中创建了EX10这个工程,选择菜单中[Build]→[Rebuild All],重新编译所有的工程文件,可以看到如下输出: 从这个输出中,我们可以看到可执行程序EX10.exe的产生,经过了两个步骤:首先,C++编译器对工程中的三个源文件fish转载 2012-07-15 21:37:40 · 976 阅读 · 0 评论 -
-1.#IND0 1.#qnan0
在VS遇到-1.#IND000000000000一般是除数分母为0导致还有在acos(a/b),当 a=1 b = 1也可能出现这种情况 -1.#IND000000000000 1.#qnan0 /0的缘故,即使是0/0也可能会出现这种情况原创 2012-05-04 23:33:23 · 4619 阅读 · 0 评论 -
STL之容器:选择时机,删除元素,迭代器失效
http://www.cnblogs.com/lichkingct/archive/2009/05/04/1449101.html一. 种类:标准STL序列容器:vector、string、deque和list。标准STL关联容器:set、multiset、map和multimap。非标准序列容器slist和rope。slist是一个单向链表,rope本质上是一个重型字符串非标准关转载 2012-05-18 14:31:32 · 470 阅读 · 0 评论 -
Windows DLL编程中的导入导出:__declspec(dllimport) ,__declspec(dllexport)
http://blog.youkuaiyun.com/stone_kingnet/article/details/3862504在Windows DLL编程时,可使用__declspec(dllimport)关键字导入函数或者变量。 函数的导入 当你需要使用DLL中的函数时,往往不需要显示地导入函数,编译器可自动完成。但如果你显示地导入函数,编译器会产生质量转载 2012-05-27 18:48:32 · 529 阅读 · 0 评论 -
公共对话框——OPENFILENAME结构
http://www.chinaitpower.com/A/2001-10-14/1697.htmlOPENFILENAMEtypedef struct tagOFN { DWORD lStructSize; HWND hwndOwner; HINSTANCE hInstance; LPCTSTR lps转载 2012-05-27 19:05:12 · 551 阅读 · 0 评论 -
拷贝构造函数调用总结
拷贝构造函数主要在以下三种情况下起初始化作用:1. 在声明语句中用一个对象初始化另一个对象;2. 将一个对象作为参数按值调用方式传递给另一个对象时生成对象副本;3. 生成一个临时对象作为函数的返回结果。那么接着就看一下在这三种情况下拷贝构造函数分别在什么时候调用,以及如果有临时对象的话,在什么时候析构。先假定有一个类FOO,在构造函数中会输出“Constructin原创 2012-05-27 18:56:15 · 423 阅读 · 0 评论 -
win32 project 控制台输出 pragma comment的使用
初学者在学习windows编程可能会遇到不能用win32 console那样的控制台作为输出调试,在main函数中加入下一句即可从console输出信息调试#pragma comment(linker, "/subsystem:\"CONSOLE\" /entry:\"WinMainCRTStartup\"")#pragma comment( comment-type [,"c原创 2012-05-04 00:49:26 · 833 阅读 · 0 评论