![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
BE SANE
这个作者很懒,什么都没留下…
展开
-
GetFullPathName和GetLongPathName
这两个都是kernal32.dll提供的API。 参考MSDN说明: GetFullPathName: 用于获取某文件的全路径和文件名称;不推荐在多线程应用中使用;该函数不检查返回的路径是否合法或存在;也用于计算路径中的部分值(比如取父目录)。 GetLongPathName: 转换指定路径为长路径格式(相对短路径ShortPath : dos格式而言);在转载 2015-02-26 11:05:38 · 4552 阅读 · 0 评论 -
ORA-24550: unhandled signal
1. 最近使用多线程数据库编程是遇到ORA-24550错误。程序直接崩溃掉了。(靠~,想插个图进来不会弄!) 查询oracle server端trace文件中没有任何错误。看来是oracle客户端的问题。 oracle文档中解释: ORA-24550: unhandled signal #%ld received. %s*Cause: Serious error: sig转载 2013-11-07 09:56:28 · 5174 阅读 · 1 评论 -
BoundsChecker 使用
BoundsChecker也推出了适用于vc6, vs2005,vs2008,vs2010的新版本,于是下载下来试了一下,和VC6下有一些不同安装好BoundsChecker后,在VS工具栏有一个工具条,由于BoundsChecker使用插桩的方式,来查找内存泄露,所以需要在编译的时候,来执行插桩操作,有一个开关,决定编译时是否使用BoundsChecker来插桩就是第五个,蓝色的图标,点转载 2013-12-11 09:29:17 · 8594 阅读 · 0 评论 -
sscanf 另类用法
名称: sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: Int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明: sscanf与scanf类似,都是用于输转载 2013-11-27 10:55:18 · 578 阅读 · 0 评论 -
vs2010 程序出错异常后,自动生成dmp文件
LONG WINAPI UnhandledExceptionFilter_SpawDmp(struct _EXCEPTION_POINTERS* ExceptionInfo){TCHAR strDumpFile[512] = {0}; _tcscpy( strDumpFile,_T("myprivate.dmp") );HANDLE hFile = CreateFile(str原创 2013-11-07 18:15:19 · 3194 阅读 · 0 评论 -
禁止程序出错后,弹出错误窗口
//*******************************************************void myInvalidParameterHandler(const wchar_t* expression,const wchar_t* function, const wchar_t* file, unsigned int line, uintptr_t p原创 2013-11-07 18:38:24 · 1096 阅读 · 0 评论 -
vs调调试dump文件
1 C/C++\General\Debug Information Format=Program Database (/Zi).2 Linker\Debugging\Generate Program Database File=”Name and location of your PDB files”3 Tools/Options,Debugging/General中去掉R转载 2013-11-07 14:51:48 · 1157 阅读 · 0 评论 -
对std::out_of_range抛出异常进行处理
对std::out_of_range抛出异常进行处理#include #include #include using namespace std; int main() { vector int> a; a.push_back(1); try { a.at(1);转载 2013-11-06 17:14:23 · 21842 阅读 · 1 评论 -
文件路径 正斜杠和反斜杠
c++中\\是一种转义字符,他表示一个\,就像\n表示回车一样。所以C++中的路径名:D:\matcom45\doc\users\_themes\m.dat应为:CString filename=_T("D:\\matcom45\\doc\\users\\_themes\\m.dat");或CString filename=_T("D:/matcom转载 2013-11-19 14:27:00 · 11630 阅读 · 0 评论 -
FTP两种工作模式:主动模式(Active FTP)和被动模式(Passive FTP)
1. 客户端向服务器的FTP端口(默认是21)发送连接请 求,服务器接受连接,建立一条命令链路。 2 .当需要传送数据时 主动模式: 客户端在命令链路上用PORT 命令告诉服务器:“我打开了XXXX端口,你过来连接我”。于是服务器从20端口向客户端的 XXXX端口发送连接请求,建立一条数据链路来传送数据。 被动模式:服务器在命令链路上用PASV原创 2013-11-19 11:45:02 · 3056 阅读 · 2 评论 -
ftp错误150 Opening ASCII mode data connection for /bin/ls.
dos 下ftp默认为port主动模式,如果客户端pc所在网络有防火墙,则ftp server在数据传输时,就不能连接到client,会报 150 Opening ASCII mode data connection for /bin/ls.解决: 改用passive模式进行数据传输。原创 2013-11-19 11:47:36 · 42001 阅读 · 1 评论 -
VS2010包含windows.h时winsock2.h出现"fd_set":struct类型重定义
大凡在Windows平台下用C++做网络开发很多时候都会同时包含这两个头文件,如若顺序不当(windows.h先于winsock2.h)就会出现很多莫名其妙的错误。诸如:警告 4 warning C4005: “AF_IPX”: 宏重定义 c:\program files\microsoft sdks\windows\v6.0a\include\ws2def.h转载 2013-11-04 10:44:14 · 921 阅读 · 0 评论 -
warning LNK4042: 对象被多次指定;已忽略多余的指定
1、把报LNK4042的.h和.cpp从项目中排除2、重新加入排除的.h和.cpp原因:1. 如果在属性窗口修改了文件的设定,就可能发生2. 在工程里存在两个不同位置的*.cpp文件。另一个只有一行#include *.h,不知何时加进来的。有的时候你可能将cpp文件移动到另一个目录下,而在工程里没有改变,VS会生成一个这样的文件加入到工程中。原创 2013-11-04 11:01:33 · 11402 阅读 · 0 评论 -
FTP服务器和客户端源代码编写问题(ftp server client source)
其实FTP也就是普通的Socket程序,只是需要按照FTP协议(RFC959, 1635?可能我记错了)去做,也就是每个消息有固定的结构的,比如头3个字节必须是200,201,300,400之类的数字表示操作结果。写FTP协议的程序主要要明白的一个关键问题是双socket,一个control socket,一个是data socket,当然,你读源代码还可能发现一个passive so转载 2013-11-18 14:24:48 · 3964 阅读 · 0 评论 -
内存泄露检测工具比较
1. ccmalloc-Linux和Solaris下对C和C++程序的简单的使用内存泄漏和malloc调试库。2. Dmalloc-Debug Malloc Library.3. Electric Fence-Linux分发版中由Bruce Perens编写的malloc()调试库。4. Leaky-Linux下检测内存泄漏的转载 2013-10-28 14:37:29 · 646 阅读 · 0 评论 -
安装msdn2008后,导致vs2010 扩展导致异常的解决
好久没装MSDN了,都在Linux开发用不上。在新公司看见同事偶尔也用下,就自己装了一下。结果悲剧了。只要在VS2010输入一个字符,它就报错 ":Microsoft Visual Studio 2010 遇到了异常,可能是由某个扩展导致的"。直接google免得麻烦。错误上说"您可以在命令行上使用/LOG参数运行应用程序,然后检查文件"C:\Users\Administrator\App转载 2013-10-21 17:02:41 · 1547 阅读 · 0 评论 -
error C2665: 2 个重载中没有一个可以转换所有参数类型
编写如下代码运行,竟然提示错误(error C2665: “AfxMessageBox”: 2 个重载中没有一个可以转换所有参数类型)。 代码: 1 void CMouseMoveView::OnAppExit() 2 { 3 // TODO: 在此添加命令处理程序代码 4 if(AfxMessageBox("是否真的转载 2013-10-24 18:03:30 · 13589 阅读 · 0 评论 -
10进制浮点数转 二进制数
1.十进制数转换为二进制数 十进制数转换为二进制数时,由于整数和小数的转换方法不同,所以先将十进制数的整数部分和小数部分分别转换后,再加以合并。 1. 十进制整数转换为二进制整数 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,然后把先得到的原创 2013-12-25 16:42:55 · 10360 阅读 · 1 评论 -
VS 的Command Window 调试命令的总结
调试的时候,可以在VS 的Command Window中输入调用。以 Unicode 形式列出内存>du 0x056769d0 原稿: http://msdn.microsoft.com/en-us/library/c338aexd.aspx[摘]“命令”窗口用于直接在 Visual Studio 集成开发环境 (IDE) 中执行命令或别名。可以执行菜单命令和不在任转载 2013-12-26 14:09:40 · 7326 阅读 · 0 评论 -
程序的用户地址空间映射
可执行程序包括BSS段(未初始化的数据)、数据段(.data 已初始化数据)、代码段(也称程序文本段)。BSS(Block Started by Symbol)通常是指用来存放程序中未初始化的全局变量和静态变量的一块内存区域。特点是:可读写的,在程序执行之前BSS段会自动清0。所以,未初始的全局变量在程序执行之前已经成0了。注意和数据段的区别,BSS存放的是未初始化的全局变量和静态原创 2014-01-13 15:18:42 · 828 阅读 · 0 评论 -
CSerialPort Class
#include "stdafx.h" #include "SerialPort.h" #include // // 构造函数 // CSerialPort::CSerialPort() { m_hComm = NULL; // 重叠结构成员置0 m_ov.Offset转载 2014-06-26 09:59:26 · 959 阅读 · 0 评论 -
msyql connnector/c++ , to change connect port
http://dev.mysql.com/tech-resources/articles/mysql-connector-cpp.html原创 2014-04-21 16:21:18 · 844 阅读 · 0 评论 -
float与double的范围和精度
float与double的范围和精度原文:http://blog.csdn.net/wuna66320/article/details/16917341 范围float和double的范围是由指数的位数来决定的。float的指数位有8位,而double的指数位有11位,分布如下:float:1bit(符号位)8bits(指数位)23bits(尾数位)doub转载 2014-04-03 10:46:24 · 710 阅读 · 0 评论 -
vc++与MySQL数据库的连接(C库API方法,非odbc)
1.MySQL数据库的安装 你可以从MySQL的官网上或者从如下地址下载MySQL的数据库安装包(http://download.csdn.net/detail/nuptboyzhb/4619847)。本文以mysql-5.0.27-win32为例。下载完之后解压安装。注意:在安装的过程中,选择安装“完全版”(complete),不要选择默认的“典型”。否者,没有c++相关的连接库。然后一直点转载 2014-04-02 12:22:26 · 1517 阅读 · 0 评论 -
vs c库连接 Mysql后, 关闭M时,提示 Run-Time Check Failure #2 - Stack around the variable 'mysql' was corrupted.
// TestMysql.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include #include #include #include #include #pragma comment(lib,"li原创 2014-04-02 15:01:28 · 2072 阅读 · 0 评论 -
用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序
链接器->系统->子系统->控制台或windows 后面的”最低版本“是5.01原创 2014-04-01 15:27:27 · 6213 阅读 · 0 评论 -
ACE的陷阱
坦白说,使用这个标题无非是希望能够吸引你的眼球,这篇文章的目的仅仅是为了揭示一些ACE缺陷的。文章适合的读者是对ACE(ADAPTIVE Communication Environment)有一定研究,或者正在使用ACE从事项目开发的人士参考。如果你对C++还是新手,甚至包括ACE知识初学者,(但你想飞的更高),建议你收藏这篇文档以后阅读。秉承陷阱系列文章的传统,我只是通过一些辩证的角度去看A转载 2014-03-21 15:16:22 · 1735 阅读 · 0 评论 -
vs2013 find and replace - use regular expressions 统计代码行
^[\r\n\s]*[^\r\n\s#/]+.*$ 开头若干个空白符,中间必有“非空白且非#、/符号”的行。 Matching lines: 48532 Matching files: 71 Total files searched: 72-----------------------------------------------------------------原创 2014-03-13 14:29:05 · 3623 阅读 · 0 评论 -
sc start service 1063 1053 错误原因
在进入点函数里面要完成ServiceMain的初始化,准确点说是初始化一个SERVICE_TABLE_ENTRY结构数组,这个结构记录了这个服务程序里面所包含的所有服务的名称和服务的进入点函数,下面是一个SERVICE_TABLE_ENTRY的例子:SERVICE_TABLE_ENTRY service_table_entry[] ={ { "MyFTPd" , FtpdMain }转载 2014-02-17 15:30:28 · 16182 阅读 · 1 评论 -
error C2787: “LogLevel”: 没有与该对象关联的 GUID
错误 1 error C2787: “LogLevel”: 没有与该对象关联的 GUID h:\office_dcs\trunk\miartech_dcs\debug\msado15.tlh208错误 2 error C3203: “_com_IIID”: 未专用化的类 模板 不能用作 模板 变量,该变量属于 模板 参数“_IIID”,应为 real 类型h:\office原创 2013-10-21 17:43:34 · 2631 阅读 · 0 评论 -
error:WINDOWS.H already included错误解释
以下转自CSDN论坛:http://topic.csdn.net/t/20020425/20/676815.htmlcompile error: c:\program files\microsoft visual studio\vc98\mfc\include\afxv_w32.h(14) : fatal error C1189: #转载 2014-02-10 16:49:31 · 816 阅读 · 0 评论 -
windbg symbols 介绍
http://msdn.microsoft.com/en-us/library/windows/hardware/ff558823(v=vs.85).aspx原创 2014-01-20 14:19:35 · 703 阅读 · 0 评论 -
很幽默的讲解六种Socket IO模型(转)
http://bbs.csdn.net/topics/240053763本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。一:select模型二:WSAAsyncSelect模型三:WSAEventSelect模型四:Overlapped I/O 事件通知模型五:Overlapped I/O 完成例程模型六转载 2014-01-20 10:26:54 · 657 阅读 · 0 评论 -
CRT内存泄漏检测
Visual Studio 调试器和 C 运行时 (CRT) 库为我们提供了检测和识别内存泄漏的方法: **一、如何启用内存泄漏检测机制 VC++ IDE 的默认状态是没有启用内存泄漏检测机制的,也就是说即使某段代码有内存泄漏,调试会话的 Output 窗口的 Debug 页不会输出有关内存泄漏信息。你必须设定两个最基本的机关来启用内存泄漏检测机制。转载 2014-01-27 15:57:54 · 1160 阅读 · 0 评论 -
使用Application Verifier (AppVerifier)检查资源泄漏
最近在论坛里看到很多人问怎样检查内存泄漏,对于Windows CE/Windows Mobile开发,微软已经为我们提供了很好的工具Application Verifier。AppVerifier是一个辅助开发工具,不用修改代码,可以检测出程序内存,句柄, GDI对象泄漏,并报告分配泄漏对象的调用栈,有过在大规模代码里查资源泄漏的兄弟应该知道这个调用栈的价值。 在中文google里搜了下,转载 2014-01-18 10:34:48 · 856 阅读 · 0 评论 -
win7下windbg无法找到正确调试符号问题
1.下载win7的WDK:http://www.microsoft.com/en-us/download/details.aspx?id=11800 我下下来的是GRMWDK_EN_7600_1.ISO,用虚拟光驱安装到D:\WinDDK下 2.下载symbols的总目录:http://msdn.microsoft.com/en-us/windows/hardware/gg463转载 2014-01-17 14:28:10 · 7225 阅读 · 0 评论 -
How to detect when the client closes the connection?
Imagine the following scenario: You are writing a server application. Clients send their queries to the server, for every new client connection, the server starts a new process that is responsible for转载 2013-10-18 10:44:21 · 585 阅读 · 0 评论 -
vc windows服务
// 1 初始化 ServiceStatus、hStatus// 2 服务表设置// 3 创建并打开服务/* 4 StartServiceCtrlDispatcher--在此进程中的服务表中所有服务进程结束前,此函数不返回;创建(当前服务进程的)主线程的连接到SCM;SCM利用此连接给服务进程发送控制和启动请求;此时,主线程成为进程的分配器线程,负责调用Ser原创 2013-10-10 12:08:55 · 631 阅读 · 0 评论 -
函数指针 (变量)
函数指针的声明方法为:函数类型 (标志符指针变量名) (形参列表);注意函数指针变量和函数指针类型的区别1 直接声明一个函数指针变量(类似struct类型的定义和声明,放在一起)int func(int x); /* 声明一个函数 */int (*f) (int x); /* 声明一个函数指针 */f=func; /* 将func函数的首地址赋给原创 2013-07-21 16:34:22 · 549 阅读 · 0 评论 -
VSS下载地址及安装使用
目的:在服务器端的源代码共局域网内的人员修改编辑修改,更好的进行版本控制1.下载VSS2005,http://oyksoft.oyksoft.com/oyksoft.com/Microsoft.Visual.SourceSafe.2005.rar2.安装。服务器和客户端都要安装。3.在服务器端启动Microsoft Visual SourceSafe Administration,新建转载 2013-04-11 20:18:43 · 3902 阅读 · 0 评论