coding
coding
曹经纬
这个作者很懒,什么都没留下…
展开
-
VS2010调试dump文件
dump文件,在VC中的调试还是非常非常非常有用的,因为我们也不会经每一行代码都加上日志,当然如果你愿意,也可以每一行都加上日志;在Windows上,添加dump文件有两种方法:方法一:一个是在程序中添加代码;方法二:修改注册表(参考后面的bat文件写法,在win7上用管理员程序运行);建议用这个方法,方便实用;(http://blog.csdn.NET/hgy413/ar转载 2016-11-13 19:44:28 · 2830 阅读 · 0 评论 -
调试技巧 —— 如何利用windbg + dump + map分析程序异常
之前碰到论坛里有几个好友,说程序不时的崩溃,什么xxoo不能read的! 如果光要是这个内存地址,估计你会疯掉~~所以分享一下基本的调试技巧,需要准备的工具有WinDbg + VC6.0,下面是自己整理的一份自动生成DUMP文件的源代码,只需要添加到工程即可,源代码如下:MiniDump.h[html] view plain co转载 2016-11-13 19:01:31 · 693 阅读 · 0 评论 -
如何使用指向类的成员函数的指针(详解!)
我们首先复习一下"指向函数的指针"如何使用?[cpp] view plain copy print?void print() { } void (*pfun)(); //声明一个指向函数的指针,函数的参数是 void,函数的返回值是 void pfun = print; //赋值一个指向函数的指针 (*pfu转载 2016-11-10 18:40:24 · 438 阅读 · 0 评论 -
sscanf 其实很强大
最近在做日志分析,Linux C 的开发环境,在对每行日志进行处理的时候,手下一个小伙用的是逐字节拆分成字段。 刚开始没注意,后来每天10几G的日志上来后,发现除了速度特别慢以外,还经常出问题,遇到错误格式的日志就直接崩溃。。。 拿过来帮他改的时候,觉得这里完全可以用sscanf来进行处理,于是google+man 以及半天的测试以后,终于找到了一个比较合理的格式字转载 2016-10-09 10:08:55 · 2979 阅读 · 2 评论 -
智能指针的标准之争:Boost vs. Loki
智能指针的标准之争:Boost vs. Loki撰文/马维达 2001 年10 月和2002 年4 月,在美国的华盛顿和荷兰的安的列斯群岛上分别召开了两次C++标准会议。会议的内容之一是对一项新的C++特性提议——智能指针(Smart Pointer)——进行讨论。本文将对可能成为C++新标准的两种智能指针方案(Boost vs. Loki)进行介绍和分析,并给出了相应的使用实转载 2016-09-10 16:51:07 · 526 阅读 · 0 评论 -
VS2008 VS2013多核编译配置
如何提高VS2013编译速度除了可以在项目中采用预编译外,还可以采用下面方法第一步Properties -> Configuration Properties -> C/C++ -> Code Generation -> Enable Minimal Rebuild -> No(/Gm-)第二步Properties -> Configuration原创 2016-08-27 18:16:41 · 2265 阅读 · 0 评论 -
轻量级序列化库boost serialization
原创地址:http://blog.csdn.net/fhxpp_27/article/details/8556948对象序列化是项目中最经常看到的场景,因此实现该功能的库也有很多,如:thrift、protobuf、avro,但我觉得这些库都太过沉重,因为他们还提供了rpc的功能,如果只是单纯做对象序列化,boost serialization是个不错的选择,以下boost seria转载 2016-08-09 21:07:15 · 494 阅读 · 0 评论 -
智能指针(一):STL auto_ptr实现原理
智能指针实际上是一个类(class),里面封装了一个指针.它的用处是啥呢?指针与内存说到指针自然涉及到内存.我们如果是在堆栈(stack)中分配了内存,用完后由系统去负责释放.如果是自定义类型,就会自动的去调用你的析构函数.但如果是在堆(heap)中分配了内存,也就是用malloc或者new.那只能自动手动的使用free或delete去释放.所以使用heap时处理的不好很容转载 2016-02-11 18:44:01 · 411 阅读 · 0 评论 -
写程序中常遇到的Bug3
一、delete[] 问题class A{};void TestDelete(){ A* pA[2]; pA[0] = new A(); pA[1] = new A(); //delete[] pA; // Error for (int i = 0; i < sizeof(pA) / sizeof(pA[0]); i++) delete pA[i]; A* pA2原创 2014-03-28 17:22:56 · 630 阅读 · 0 评论 -
写程序中常遇到的bug2
八、Visual Studio中,执行文件和库文件环境变量不一致1、Debug还是Release2、64位还是32位3、平台工具集 v80 v90 v100 v110 v120原创 2014-03-05 10:57:51 · 873 阅读 · 0 评论 -
写程序常遇到的Bug
一、浮点数比较// FloatCompare.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include using namespace std;void float_compare(){ float a = 3987.25; float b = 3987.25; //Error1 //if (((a - 3897.25) > -原创 2013-12-31 10:07:23 · 816 阅读 · 0 评论 -
Visual Studio 2010 发布应用程序到其他计算机上时 mfc100ud.dll丢失无法运行
使用VC2010生成的可执行程序移植到其他环境中运行,会提示“mfc100ud.dll丢失”。 打开项目,选择属性,分三步: (1)选择左上角的configuration->Active(Debug) configuration properties->general->use of MFC,选择use MFC in a static lib转载 2013-12-16 20:36:30 · 2768 阅读 · 0 评论 -
VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”
升级vs2010到vs2012,突然发现build出来的应用程序无法运行,提示“不是有效的 win32 应用程序” or “not a valid win32 application”。参考CSDN论坛中的方法,找到下面这篇文章:http://blogs.msdn.com/b/vsnetsetup/archive/2012/10/16/setup-exe-is-not-a-vali转载 2014-06-11 10:15:03 · 859 阅读 · 0 评论 -
关于形如--error LNK2005: xxx 已经在 msvcrtd.lib ( MSVCR90D.dll ) 中定义--的问题分析解决
很久没有写程式设计入门知识的相关文章了,这篇文章要来谈谈程式库 (Library) 连结,以及关于 MSVC 与 CRT 之间的种种恩怨情仇。如果你使用的作业系统是 Linux、Mac 或其他非 Windows 平台,你可以忽略这篇文章;如果你使用的作业系统是 Windows 平台,但没有用 Microsoft Visual Studio C++(以下简称为 MSVC)软体撰写 C++ 程转载 2014-07-02 17:49:08 · 865 阅读 · 0 评论 -
error LNK2005 ...
error LNK2005: "class ATL::CStringT > > __cdecl GetAppPath(void)" (?GetAppPath@@YA?AV?$CStringT@_WV?$StrTraitMFC_DLL@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ) 已经在 AutoUpdate.obj 中定义原创 2014-07-03 13:01:09 · 888 阅读 · 0 评论 -
error LNK2005: ___xi_a 已经在 msvcrt.lib(cinitexe.obj) 中定义
解决办法:链接时加入命令行参数 /FORCE:MULTIPLE原创 2014-07-24 11:37:08 · 4832 阅读 · 0 评论 -
*.exe 中发生了缓冲区溢出
问题产生的原因:空指针、野指针原创 2014-06-16 17:27:52 · 958 阅读 · 0 评论 -
vs2013安装AnkhSVN,但是不起作用解决方法
Tool->option->Source control->plug-in selection,选择ankhSVN原创 2014-07-09 09:58:59 · 5547 阅读 · 0 评论 -
使用VS2013,编译提示"GetVersion"被声明为否决的
这是MS新的C库提供的带有检查的函数,有内存溢出检测。可以防止一部分程序bug, 抵制缓冲区溢出攻击(buffer overflow attack). 但是应该速度上有牺牲。解决办法1.所以在你确信安全的情况下,可以用#pragma warning(disable: 4996)消除这个警告2.建议使用_s的缓冲区安全的版本,而不是简单的屏蔽警告。原创 2014-06-20 11:34:30 · 7376 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号 __imp__UuidToStringW@8,该符号在函数 "private: class ATL::CStringT<wchar_t,class S
使用UuidToString()系统函数,在VC6中能正常编译,但在VS2013中报错:error LNK2019: 无法解析的外部符号 __imp__UuidToStringW@8,该符号在函数 "private: class ATL::CStringT > > __thiscall CFinancialChartDlg::GetUniKey(void)" (?GetUniKey@CFinanc原创 2014-12-22 11:01:32 · 5287 阅读 · 0 评论 -
error LNK2019: 无法解析的外部符号
一般都是在调用动态库或静态库引起的在VC中shiyong原创 2014-05-21 20:52:02 · 614 阅读 · 0 评论 -
fatal error C1083: 无法打开预编译头文件:“Debug\TransactionMessage.pch”: No such file or directory
创建一个空的静态库,直接编译,编译不通过,出现上面的cu原创 2014-05-21 17:06:22 · 804 阅读 · 0 评论 -
boost库之asio使用出错:error LNK2001,boost::system::generic_category
错误现象:在使用boost库之asio库时,出现以下错误: error LNK2001: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror转载 2013-11-22 15:18:30 · 1257 阅读 · 0 评论 -
无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::system_category(void)
error LNK2019: 无法解析的外部符号 "class boost::system::error_category const & __cdecl boost::system::system_category(void)"解决:X86与X64库不匹配引起的,需要编译一个对应版本的库。我的boost库是x64的,开发环境是VS2010,所以开发平台也要设置为x64。原创 2013-12-05 11:26:24 · 6867 阅读 · 1 评论 -
QuickFAST:Why can't I run the performance test? Why can't I run the example programs?
Many of the example programs included with QuickFAST require a set of templates and sample FAST-encoded data to run. We have these at OCI where we use them to test QuickFAST. Unfortunately the test fi原创 2013-12-17 21:08:26 · 943 阅读 · 1 评论 -
vs2010 error MSB6006: “cmd.exe”已退出,代码为 1
vs2010 error MSB6006: “cmd.exe”已退出,代码为 1原因是没有汇编指令的编译器。解决:在VS2010中搭建masm汇编语言环境。具体看下一篇文章《使用vs2010和masm32搭建win32汇编语言编程编译环境》原创 2013-12-14 13:56:07 · 2617 阅读 · 0 评论 -
VS2013不支持多字节编码
解决办法:到官方下载网站上下载vc_mbcsmfc.exe,然后安装。然后,没有然后了,So easy!原创 2013-12-26 15:47:07 · 2587 阅读 · 0 评论 -
应用程序无法正常启动0xc000007b
将64位改为32位,问题暂时解决!原创 2014-01-03 12:50:53 · 708 阅读 · 0 评论 -
无法启动此程序,因为计算机中丢失xerces-c_3_1D.dll
将下载得到的xerces-c_3_1D.dll放到C:/windows/system32这个文件夹下面原创 2013-12-17 15:05:49 · 11591 阅读 · 1 评论 -
fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
上网搜索发现是嵌入清单的问题,于是对该工程以及所有依赖工程进行如下操作右键->工程属性->配置属性-> 清单工具->输入和输出->嵌入清单,选择[否]转载 2013-12-18 12:25:00 · 467 阅读 · 0 评论 -
无法找到“XXX.exe”的调试信息,或者调试信息不匹配
"无法找到“XXX.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件"Debug模式,运行时完全正常,但是一调试就出现对话框,显示出错信息: “无法找到“XXX.exe”的调试信息,或者调试信息不匹配。未使用调试信息生成二进制文件。” VC项目是空项目。发现其他的项目都可以调试,就“空项目”不行。解决方法:首先打开菜单 项目->项目属性页 1转载 2014-01-21 16:57:42 · 703 阅读 · 0 评论 -
fatal error C1189: #error : WinSock.h has already been included
使用boost::asio时可能提示如下错误:fatal error C1189: #error : WinSock.h has already been included 百度之后的解决方法大同小异,如下: ... ...但是上面的方法我都试过,没效果的说...后来才发现怎么解决最方便(仅对自己的情况而言)。 我用的是VS2005原创 2013-12-20 15:46:32 · 2822 阅读 · 0 评论 -
关于stack around the variable “” was corrupted问题
void TestDeserialize(){ char szData[32] = { 0 }; int nLength = 87; char* pLength = (char*)&nLength; memcpy(szData + 10, pLength, 2); int nLength2 = 0; for (int i = 0; i < 2; i++) *((char*)(原创 2014-05-12 15:58:32 · 761 阅读 · 0 评论 -
安装了VS2013,VS2010打开实例后:LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
终极解决方案:VS2010在经历一些更新后,建立Win32 Console Project时会出“error LNK1123” 错误,解决方案为将 项目|项目属性|配置属性|清单工具|输入和输出|嵌入清单 “是”改为“否”即可,但是没新建一个项目都要这样设置一次。在建立VS2010 Win32 Project项目时,按照上面解决方案依然发生了“error LNK1123”错误,经过上网查资转载 2013-12-23 15:21:50 · 1337 阅读 · 0 评论 -
无法从“void (__thiscall CPppView )(void)”转换为“LRESULT (__thiscall CWnd )(WPARAM,LPARAM)”
error C2440 “static_cast” 无法从“void (__thiscall CPppView )(void)”转换为“LRESULT (__thiscall CWnd )(WPARAM,LPARAM)” 不能转换void (_thiscall CMainFrame::*)(void)to LRESULT (__thiscall CWn原创 2013-12-26 10:04:53 · 1055 阅读 · 0 评论 -
Virsual Studio 2013中MSDN查找不到资料的问题
Ctrl+F1 或 菜单栏:帮助-->查看帮助在打开的网页中将zh-cn修改为en-us,再次搜索就能找到想要的资料了。原创 2014-01-17 17:31:37 · 548 阅读 · 0 评论 -
socket.error C2011: “sockaddr”: “struct”类型重定义
重复定义问题,将#include 放在#include之后即可。转载 2014-04-21 16:30:01 · 5646 阅读 · 3 评论 -
无法访问 private 成员(在“boost::asio::detail::noncopyable”类中声明)
------解决方案--------------------所以,你的问题应该是没有使用引用,而是使用了拷贝。比如:C/C++ codeclass A{ io_service io;public: A(io_service io_): io(io_) { }};------解决方案--------------------io_service &io;这里原创 2013-12-06 18:10:17 · 2237 阅读 · 0 评论 -
无法启动此程序,因为计算机中丢失boost_thread-vc100-mt-1_54.dll
将boost安装目录下的boost_thread-vc100-mt-1_54.dll 拷到C:/windows/system32这个文件夹下面,exe文件执行通过!原创 2013-12-17 16:51:51 · 7482 阅读 · 0 评论 -
error c2243:"类型转换" 转换存在,但无法访问
今天在程序的中有一段class Quackable : QuackObservable,结果一直出现error c2243:"类型转换" 转换存在,但无法访问。后来发现只要改成class Quackable : public QuackObservable 即可。c++默认的是private继承,无法进行转换,检查一下是否继承后面都有一个public转载 2014-02-21 11:36:43 · 1075 阅读 · 0 评论