c++
sunriseWang
这个作者很懒,什么都没留下…
展开
-
Poco c++ Library 之xml 的使用
POCO XML 操作文档 它操作xml 有两种方式, sax 和dom, 这时只介绍DOM , 注意 dom 元素有限制, 子节点下不同名的元素不能超过251个.注: poco xml 只支持utf8 所以你的所有字符串都必须先转换成 utf8 才能使用.读XML :我们得先清楚几个问题:1 我这里只介绍 DOMParser DOMWriter.2 P原创 2012-03-07 15:27:01 · 8350 阅读 · 1 评论 -
Poco 编码转换
编码转换: (它提供了Unicode转 UTF8 没有提供 ASCII 转 utf8)void FtpClinet::A2UTF8(const string & asciiString, string & utf8String){ utf8String.clear();Poco::ASCIIEncoding asciiEncoding;Poco::UTF8Encoding原创 2013-10-14 09:26:41 · 4052 阅读 · 0 评论 -
boost 共享指针
boost 共享指针用于类成员声明:shared_ptr _p;构造时比较麻烦,你可以在构造函数中写:_p = shared_ptr ( new XXX() );原创 2013-10-14 10:19:45 · 2232 阅读 · 0 评论 -
u_long 网络字节序 转字符串
u_long 网络字节序 转字符串 boost::asio::ip::address_v4 IpAddress( ntohl( nAddr ) ); IpAddress.to_string();}原创 2013-10-14 10:21:20 · 2696 阅读 · 0 评论 -
boost assign库 对 stl容器 的操作
#include #include #include #include using namespace std;using namespace boost::assign;int main(){ boost::array arr = {1,2,34,1}; vector v = list_of(11)(12)(14) ; v += 1,2,5,6,1; int ret原创 2013-10-14 10:23:38 · 786 阅读 · 0 评论 -
boost filesystem
创建多级目录boost::filesystem::create_directories是否是目录 boost::filesystem::is_directory文件是不是存在 boost::filesystem::exists(strPath)返回文件修改时间 boost::filesystem::last_write_time原创 2013-10-14 10:24:12 · 6791 阅读 · 0 评论 -
CMake And VS2010
在VS2010 中 支持CMake 首先下载: CMake Tools for Visual Studio下载地址: http://cmaketools.codeplex.com/CMake 官网: http://www.cmake.org/CMake GUI 下载地址:http://www.cmake.org/cmake/resources/software.ht原创 2013-10-15 11:38:17 · 6457 阅读 · 0 评论 -
WDK 7.1.0 和 8.0 下载地址
http://msdn.microsoft.com/en-us/windows/hardware/hh852365我的网盘里也有http://pan.baidu.com/share/link?uk=604410292&shareid=4045180046#dir/path=%2FDevelopmentTools原创 2013-10-17 15:01:11 · 9429 阅读 · 3 评论 -
使用 vs2012 调试驱动
1 将Target加入到Host同一个域或工作组,可互ping通.2 Target:确定你的登陆帐号在Administrators组3 Target:查看活动网络, 高级共享 打开 对应活动网络配置中的 启用网络发现 和 启用文件和打印共享4 Target&Host: 设置串口波特率115200 (非串口调试略过).5 Host:vs2012->DRVIER->Test->Conf原创 2013-10-25 15:25:54 · 2408 阅读 · 0 评论 -
实现调用任意函数的代码
#include #include using namespace std;class A{public: template //可变模板参数 void cmd(U f,T... args) { f(args...); } void f1(int a) { cout<<"f1"<<endl; } void f2(double b,floa原创 2013-03-15 13:41:53 · 952 阅读 · 0 评论 -
vc 运行库
如何让 vs 编译的exe 在目标机器上运行?在你装了vs的机器上 打开这个目录: 我在vs2012在c盘 我的系统是win7(x64)C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC两种情况 release 版 和 debug 版release:C:\Program Files (x86)\Mic原创 2013-11-07 15:42:02 · 1393 阅读 · 0 评论 -
Poco 字符串替换 分隔
替换字串中的的所有字符Poco::replace(string,","," ");//字串Token分隔Poco::StringTokenizer st(ips, ";");for (Poco::StringTokenizer::Iterator it = st.begin(); it != st.end(); it++){ cou原创 2013-10-14 09:26:01 · 3047 阅读 · 0 评论 -
boost log库
http://www.cnblogs.com/livewithnorest/archive/2013/09/12/3316838.htmlhttp://www.cnblogs.com/taoge/articles/1915031.htmlhttp://blog.csdn.net/hellosijian/article/details/7537760原创 2013-09-27 10:56:08 · 1365 阅读 · 0 评论 -
boost 数据类型转换的方法
#include int a = lexical_cast("123"); string strA = lexical_cast(a);当然也可以转换 其它的类型. 例如 long double 等http://blog.sina.com.cn/s/blog_47145b660100hs7s.html转载 2013-09-10 10:05:10 · 1085 阅读 · 0 评论 -
Linux 标准 输入 输出 重定向. printf 不输出到屏幕的解决办法
方法1: #include #include #include #include #include int main() { fflush(stdout); setvbuf(stdout,NULL,_IONBF,0); printf("test stdout\n"); int save_fd = dup(STDOUT_FILE原创 2013-09-11 11:54:38 · 24682 阅读 · 0 评论 -
测试占cpu的代码 工具.
gprof/prof原创 2013-07-16 14:14:38 · 1191 阅读 · 0 评论 -
boost 1_49_0 在linux 下的 编译 安装
下载: boost_1_49_0.tar.bz2$ sudo tar -jxvf boost_1_49_0.tar.bz2$ cd boost_1_49_0$ sudo ./bootstrap.sh$ sudo ./b2等着就行了....完成了$ sudo cp -r boost /usr/include/$sudo cp stage/lib/* /u原创 2012-03-06 12:40:40 · 5223 阅读 · 1 评论 -
Sublime Text 牛b跨平台 ide
下载地址: http://www.sublimetext.com/安装1.直接安装安装Sublime text 2插件很方便,可以直接下载安装包解压缩到Packages目录(菜单->preferences->packages)。2.使用Package Control组件安装也可以安装package control组件,然后直接在线安装:按Ct转载 2013-09-13 15:08:54 · 1669 阅读 · 0 评论 -
boost 网络库使用 之同步
首先看一下boost 中的例子://// blocking_tcp_echo_server.cpp// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~//// Copyright (c) 2003-2013 Christopher M. Kohlhoff (chris at kohlhoff dot com)//// Distributed under the Boo原创 2013-10-09 11:51:26 · 1289 阅读 · 0 评论 -
boost 网络库 之异步
异步和同步的基本类似. 区别就在于 异步是不阻塞的. 它是通过回调函数的机制来实现的. boost 中的示例也很简洁.//// async_tcp_echo_server.cpp// ~~~~~~~~~~~~~~~~~~~~~~~~~//// Copyright (c) 2003-2013 Christopher M. Kohlhoff (chris at kohlhof原创 2013-10-09 11:54:51 · 1998 阅读 · 0 评论 -
boost 分析命令行参数
#include #include #include using namespace std;using namespace boost::program_options;int main(int argc, char* argv[]){ string one ; // 外部变量 存储 参数one的值 vector mult; boost::program_options原创 2013-09-24 16:00:43 · 4562 阅读 · 0 评论 -
boost log 中的几个问题
boost 日志示例中有一个错误:下面这个文件:http://www.boost.org/doc/libs/1_54_0/libs/log/example/doc/tutorial_fmt_stream.cpp应该在开头加一行:#include 否则会出下列错错误: error C2027: 使用了未定义类型“boost::log::v2s_mt_n原创 2013-10-11 14:44:13 · 13472 阅读 · 3 评论 -
boost 操作配置文件
#include #include //#include //#include //#include using namespace std;int main(){ ptree pt; read_xml("conf.xml",pt); // 读 cout("config.test1")<<endl; cout("config.test2")<<endl;原创 2013-10-12 09:50:51 · 4886 阅读 · 0 评论 -
boost 定时器.
先参考这个:http://www.cnblogs.com/TianFang/archive/2013/02/02/2890325.html最简单的使用 #include #include int main() { boost::asio::io_service io; boost::asio::dead原创 2013-11-08 12:59:16 · 12012 阅读 · 0 评论 -
Windows 驱动与应用通信 之 事件对象
驱动如何通知上层应用呢?例如: 驱动接收到一些信息如何通知应用程序?一般来说驱动基于事件来通知上层应用, 是一种惯用的手法. 大体思路是我们创建一个事件.双方打开事件而通信.一般就2种情况:1在应用层创建好,然后在驱动层打开它.或者是通过ioctl 将Handle 传下去.2 反之. 注意的是 如果在 驱动中创建好 在应用层打开注意一下权限.只读打开. 当然你也可以用 i原创 2013-11-07 17:38:36 · 3089 阅读 · 0 评论 -
boost 随机数产生
void test_mt19937(){// 以时间为种子创建一个随机数发生器boost::mt19937 rng(time(0));auto a = rng();for (int i = 0; i {std::cout }}转载 2015-03-20 12:07:44 · 2212 阅读 · 0 评论 -
boost 字符串操作
//字符串分割#include #include #include int _tmain(int argc, _TCHAR* argv[]){ string strTemp = "A B C D E1 F1"; vector d; list> l; split(l,strTemp,is_any_of(" ")); boost::algorithm:原创 2012-01-08 22:47:08 · 1071 阅读 · 0 评论 -
Poco 自动全编译的方法
以 vs2008 为例:Poco 根目录下有build_vs90.cmdbuildwin.cmd这两个批处理文件, 我们得修改一下它们把build_vs90.cmd 修改为以下内容:@echo offif defined VS90COMNTOOLS (call "%VS90COMNTOOLS%\vsvars32.bat")buil原创 2012-12-14 17:25:41 · 7768 阅读 · 0 评论 -
boost Windows x64 编译
vs2013 x64兼容工具命令行bootstrap.bat生成x64版的bjam.exe b2.exeb2.exe --build-type=complete --stagedir=".\lib\vc12_x64" address-model=64 需要注意的是address-model=64属性,如果没有这个属性的话,会默认生成32位的原创 2015-07-22 14:21:41 · 10843 阅读 · 0 评论 -
Poco for Windows 编译 x86 x64
先打开对版本的vs命令行我以vs2013 为例:x64: 打开 VS2013 x64 兼容工具命令提示 然后 cd 到 poco 根目录 buildwin 120 build all both x64 samples注意: 如果你要编译 NetSSL_OpenSSL 这个库, 得先加上ssl, 修改 buildwin.cmd 中的33行 set OPENSSL_DIR=原创 2015-07-22 14:05:22 · 5945 阅读 · 0 评论 -
boost 在 windows 安装
boost安装:1 先下载boost,我的版本是boost_1_51_02 解压,我的目录是D:\Library\boost_1_51_03 支持 sltport(略),我们这里不支持.支持它太麻烦了4 打开vs2008的命令行,来到D:\Library\boost_1_51_0下,输入bootstrap.bat ,等一下..5bjam--toolset=msvc-9.0原创 2012-10-22 14:05:39 · 797 阅读 · 0 评论 -
boost 编码转换
boost 编码转换:boost::locale::conv::to_utfstring source = "....";string s = boost::locale::conv::between( source, "UTF-8", "BIG5" );原创 2013-10-14 10:19:10 · 8789 阅读 · 0 评论 -
蛋疼的 POCO CppUnit
不知道 从哪个版本 开始POCO 居然改了 CppUnit Windows 下都运行不了 一运行就退了现在它是用TestRunner 这个类了 我估计这个是命令行的我这里是poco-1.7.4-all 开始发现的并且 WinTestRunner 也没有vs2012以前肯定是可以的解决方案:以 SQLite 为例 , 改回以前的方式#include "原创 2017-02-25 20:42:47 · 1155 阅读 · 0 评论 -
boost 时间和日期
1 获取本地时间:boost::posix_time::second_clock::local_time();boost::gregorian::day_clock::local_day();ptime p(boost::gregorian::date(2012,11,01),hours(1)); // 2012年11月1日 凌晨1点整.2 把字符串转换为boost原创 2013-10-14 10:14:37 · 16189 阅读 · 0 评论 -
boost filesystem 遍历目录
void PrintAllFile(fs::path full_path){ if (fs::exists(full_path)) { fs::directory_iterator item_begin(full_path); fs::directory_iterator item_end; for (; item_begin !...原创 2018-05-11 22:37:27 · 2544 阅读 · 1 评论 -
VS2010按任意键出错的解决 与 遇到了异常,可能是由某个扩展导致的
参考:http://blog.sina.com.cn/s/blog_403638c60100muxh.htmlhttp://blog.csdn.net/wangqiulin123456/article/details/8791507我这里的情况是 xp sp3 vs2010 插件 va svn ,装好之后,启动vs2010 只要编辑一下 它就会有个错误框内转载 2015-01-23 10:33:24 · 1913 阅读 · 0 评论 -
vs2010 vc++ 目录配置
视图——其他窗口——属性管理器 ->展开全部 -> Debug | win32 ->Microsoft.Cpp.Win32.user->属性->通用属性->vc++目录这个设置是对所有工程有效的。你可以打开其他的工程或者新建新的工程,可以看到都继承了此配置原创 2013-10-12 17:15:53 · 3623 阅读 · 0 评论 -
wfp 驱动编译报错 解决方案.
C:\Program Files (x86)\Windows Kits\8.0\Include\KM\fwpsk.h(2075): error C2065: “NET_BUFFER_LIST”: 未声明的标识符1>C:\Program Files (x86)\Windows Kits\8.0\Include\KM\fwpsk.h(2075): error C2065: “packetList”原创 2013-11-08 12:39:23 · 4426 阅读 · 1 评论 -
gcc/g++ 静态动态库 混链接.
我的环境: centos6 x64. gcc4.4.7在使用gcc/g++ 编译程序时我们希望指向一些库是使用静态的链接方式. 另外的一些是动态的方式.我以boost 为例.如果我们要使用静态库则是这样的:# g++ main.cpp -lpthread /usr/lib64/libboost_thread.a /usr/lib64/libboost_system.原创 2013-11-11 12:54:24 · 17807 阅读 · 3 评论 -
boost log 在项目中的应用.
这个是我自己写的一个类.#pragma once#include #include using std::string;#define LOG_DEBUG\ BOOST_LOG_SEV((MyLog::s_slg),(boost::log::trivial::debug))#define LOG_INFO\ BOOST_LOG_SEV((MyLog::原创 2013-11-13 15:05:41 · 12208 阅读 · 7 评论