
C++
喻大帅
没有比人更高的山,没有比脚更长的路。
展开
-
使用ADO方式连接ORACLE数据执行存储过程,当入参字节数超过32k即32768字节时执行存储过程Execute报错:ORA-01460: 转换请求无法实施或不合理
问题现象如题:使用ADO方式连接ORACLE数据执行存储过程,当入参字节数超过32k即32768字节时执行存储过程Execute报错:ORA-01460: 转换请求无法实施或不合理,字符串长度在1-32767字节时无该问题。问题分析:ADO连接ORACLE数据库连接串方式一(在Open函数中指定用户和密码):Provider=OraOLEDB.Oracle.1;Data Source=配置的TNS文件服务名;PLSQLRSet=1HRESULT hr = m_pConnection-..原创 2020-10-31 11:46:40 · 473 阅读 · 0 评论 -
jsoncons: a C++ library for json construction
C++ library for parsing and serializing JSON textView the Project on GitHubdanielaparker/jsonconsDownloadZIP File DownloadTAR Ball View OnGitHubIntroductionReading JSON text from a fileConstructing json values in C++Converting CSV files to jso转载 2020-08-25 22:04:57 · 1125 阅读 · 0 评论 -
CPictureEx类使用说明
CPictueEx类的话,可在点击打开链接下载.CPictueEx不仅可以显示GIF(包括GIF动画),还可以显示JPEG、BMP、WMF、ICO、CUR.新建一个基于对话框的工程。 给你的对话框中加入一个静态文本控件(Static Text)或者图片控件(Picture Control); 利用ClassWizard给控件关联一个变量。类型是:CPictureEx的。原创 2016-10-19 16:59:00 · 3656 阅读 · 1 评论 -
C++启动一个进程
1.调用 CreateProcessSTARTUPINFO si;PROCESS_INFORMATION pi;si.dwFlags = STARTF_USESHOWWINDOW;si.wShowWindow = SW_SHOWNORMAL;ZeroMemory( &si, sizeof(si) );si.cb = sizeof(si);ZeroMemory( &p原创 2016-08-31 17:15:54 · 6050 阅读 · 1 评论 -
堆排序及其分析
前言记得在学习数据结构的时候一味的想用代码实现算法,重视的是写出来的代码有一个正确的输入,然后有一个正确的输出,那么就很满足了。从网上看了许多的代码,看了之后貌似懂了,自己写完之后也正确了,但是不久之后就忘了,因为大脑在回忆的时候,只依稀记得代码中的部分,那么的模糊,根本不能再次写出正确的代码,也许在第一次写的时候是因为参考了别人的代码,看过之后大脑可以进行短暂的高清晰记忆,于是欺骗了我,以为转载 2017-07-12 10:06:02 · 296 阅读 · 0 评论 -
CMarkup之成员函数说明
1、初始化Load 导入一个XML文件到CMarkup的对象中,并对它进行解析。类似C#的Load。SetDoc 从字符串中导入XML数据,并对它解析。类似C#的LoadXml。2、输出Save 将XML数据写入文件中。类似C#的Save。GetDoc 将整个XML数据文档作为字符串返回。3、改变当前位置FindEle原创 2016-10-19 15:49:07 · 530 阅读 · 0 评论 -
Visual Leak Detector (VLD)使用
Visual C++内置内存泄露检测工具,但是功能十分有限。VLD就相当强大,可以定位文件、行号,可以非常准确地找到内存泄漏的位置,而且还免费、开源!在使用的时候只要将VLD的头文件和lib文件放在工程文件中即可。也可以一次设置,新工程就不用重新设置了。只介绍在Visual Studio 2003/2005中的设置方法,VC++ 6.0类似:打开Tools -> Optio原创 2016-09-30 16:26:34 · 4411 阅读 · 3 评论 -
C/C++中使用Base64编码解码(使用boost库)
Base64是一种基于64个可打印字符来表示二进制数据的表示方法,从本质上看Base64编码就是将三字节转四字节。如将字符串“Man”用Base64编码。如果数据的长度不是3的整数倍,就要在后面补0再计算,每补2个0就在Base64串后加上1个‘=’。Base64编码表如下: Base64的不足之处标准的Base64并不适合直接放在URL里传输,因为URL编码器原创 2017-07-10 10:55:13 · 16007 阅读 · 2 评论 -
xmlInitParser和xmlCleanupParser 多线程操作
使用libxml2库的朋友,可能会对它提供的初始化接口(xmlInitParser )和清除资源接口(xmlCleanupParser )感到困惑.因为在它主页中提供的例子里面,各处使用的情况差别很大. 我花了些时间把这两个接口使用方法整理如下:1. 在单线程(single-threaded)环境中 xmlInitParser 可以被调用一次,或者被调用多次(多于一次),甚至可原创 2017-08-24 12:02:57 · 535 阅读 · 0 评论 -
C++ Windows进程和线程
一 Windows的进程 1 进程 进程是一个容器,包含程序执行需要的代码和数据还有 资源等信息,Windows是一个多任务的操作系统,可以 同时执行多个进程。 2 进程特点 1)每个进程都有自己的ID 2)每个进程都有自己的地址空间,进程无法访问对方的 地址空间 3)每个进程都有安全属性原创 2017-09-25 13:59:51 · 972 阅读 · 0 评论 -
wstring与string互转
std::wstring StringToWString(const std::string &strSrc){ int nLen = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)strSrc.c_str(), strSrc.length(), 0, 0); if (nLen <= 0) return std::wstring(L"");...原创 2018-06-11 11:45:06 · 646 阅读 · 0 评论 -
获取本机IP地址
CString GetLocalIP(){ char hostname[MAX_PATH] = {0}; memset(hostname, 0x00, sizeof(hostname)); int ret = gethostname(hostname, sizeof(hostname)); if (SOCKET_ERROR == ret) { return ""; } HOS原创 2016-12-15 18:41:40 · 407 阅读 · 0 评论 -
GetLastError()返回值列表
GetLastError()返回值列表:〖0〗-操作成功完成。〖1〗-功能错误。〖2〗-系统找不到指定的文件。〖3〗-系统找不到指定的路径。〖4〗-系统无法打开文件。〖5〗-拒绝访问。〖6〗-句柄无效。〖7〗-存储控制块被损坏。〖8〗-存储空间不足,无法处理此命令。〖9〗-存储控制块地址无效。〖10〗-环境错误。〖11〗-试图加载格式错误的程序。转载 2016-08-31 17:00:48 · 3665 阅读 · 0 评论 -
C++各大有名库的介绍
C++各大有名库的介绍 在C++中,库的地位是非常高的。C++之父 Bjarne Stroustrup先生多次表示了设计库来扩充功能要好过设计更多的语法的言论。现实中,C++的库门类繁多,解决的问题也是极其广泛,库从轻量级到重量级的都有。不少都是让人眼界大开,亦或是望而生叹的思维杰作。由于库的数量非常庞大,而且限于笔者水平,其中很多并不了解。所以文中所提的一些库都是比较著名的大型库。转载 2016-10-19 16:42:58 · 1318 阅读 · 0 评论 -
C++通过域名得到IP
开通黄钻VC通过域名得到IP 自己写的函数不装B,复制过去就能用。坚决抵制那些装B的答案!!CString GetIP(LPCSTR pszName){ HOSTENT* pHE=::gethostbyname(pszName); if (pHE==NULL) return ""; return inet_ntoa(*((in_add原创 2016-08-31 17:20:00 · 3584 阅读 · 0 评论 -
GBK与UTF8编码互转
//UTF8转GBKstring UTF8ToGBK(const std::string& strUTF8){int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0);unsigned short * wszGBK = new unsigned short[len + 1];memset(ws原创 2016-08-31 17:13:29 · 2463 阅读 · 0 评论 -
GetFileAttributes判断路径是文件还是目录
DWORD dwAttr = GetFileAttributes(“文件或目录路径”);if (dwAttr & FILE_ATTRIBUTE_DIRECTORY){//是目录}else{//是文件}原创 2016-08-31 17:19:17 · 7765 阅读 · 0 评论 -
MakeSureDirectoryPathExists检查目录是否存在
http://baike.baidu.com/link?url=KeLsgYCnZ8tpW_3J5_xJsB3zsvpusFViJkA1_IAJdY6pD7NQAsW4wH_Mcy5qVXUOhnTvvk6x918mM96VlGVcaa函数原型编辑BOOL MakeSureDirectoryPathExists(PCSTR Dirpath);原创 2016-08-31 17:20:45 · 3023 阅读 · 0 评论 -
如何在遍历中使用 iterator/reverse_iterator 删除元素
如何在遍历中使用 iterator/reverse_iterator 删除元素转自:http://www.cppblog.com/kesalin/archive/2014/04/22/cpp_stl.html众所周知,在使用迭代器遍历 STL 容器时,需要特别留意是否在循环中修改了迭代器而导致迭代器失效的情形。下面我来总结一下在对各种容器进行正向和反向遍历过程中删除元素时,正确转载 2016-08-31 18:59:49 · 548 阅读 · 0 评论 -
C++ 获取URL图片、html文件,CInternetSession
获取网络图片CString URL="http://192.168.0.23:8080/3DView/CR201505060107001.jpg" CInternetSession session; CHttpFile *httpFile = (CHttpFile *)session.OpenURL(URL); CStdioFile imgFile; cha原创 2016-08-31 17:15:11 · 4527 阅读 · 2 评论 -
C++结构体作为map的key的时候需要重载<运算符
typedef struct DICOMRowsAndVolumn{CString strRows;CString strColumn;bool operator {if(this->strRows==other.strRows && this->strColumn==other.strColumn) return false;else return原创 2016-08-31 17:11:25 · 3199 阅读 · 0 评论 -
vs2005及以上检测测内存泄漏
简单内存泄漏检测方法,解决Detected memory leaks!问题工作环境:XP,VS2005:最近一个项目中,程序退出后,每次都出现内存泄漏,每次退出的时候泄露的内存块都是1654,1650。Detected memory leaks!Dumping objects ->{1654} normal block at 0x01CC1B28, 40 bytes long. D原创 2016-08-31 17:17:24 · 823 阅读 · 0 评论 -
对链表的操作
// List.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include #include //定义链表结构typedef struct tagNode{ int data; struct tagNode *next;}Node, *pNode;pNode原创 2016-09-01 10:39:03 · 322 阅读 · 0 评论 -
WaitForMultipleObjects等待超过MAXIMUM_WAIT_OBJECTS个的内核对象
Windows API WaitForMultiObjects(...) 最多只能等待MAXIMUM_WAIT_OBJECTS个kernal objects。MAXIMUM_WAIT_OBJECTS被定义为64。那么这就限制了一次最多只能等待64个内核对象。根据网上查阅的资料,这里给出一种解决方案,允许等待任意多的内核对象(系统支持的范围内)。#include /* * Sync原创 2016-09-30 15:08:20 · 541 阅读 · 0 评论 -
_stricmp与stricmp的关系
使用VC++ 2005或VC++ 2008编写C程序或者调用C标准库里的函数时,会出现以下warning:warning C4996: 'strncpy' was declared deprecatedMessage: 'This function or variable may be unsafe. Consider using strncpy_s instead. To d原创 2016-08-31 17:16:39 · 10731 阅读 · 0 评论