c++:动态库接口函数返回stl对象的设计原则塈‘__acrt_first_block == header’异常原因分析

问题描述 最近在写dll动态库时,动态库函数返回的std::string对象在析构时抛出了异常: 为简化描述问题,测试代码如下(MSVC /MT 编译),就是返回一个简单的std::string tools.h # if defined(_WIN32) &&a...

2018-05-31 14:29:04

阅读数:453

评论数:0

c++11模板:容器(map,set,list,vector)中元素类型转换

简单的数据类型转换很简单,比如下面`cast`模板函数族:...那么对于容器类型,有没有方便简单的办法呢? c++11 `<algorithm>`库中的`std::transform`函数就可以很方便的实现容器中元素类型的转换

2018-05-28 10:06:07

阅读数:544

评论数:0

glib:windows下基于MSYS2环境编译glib2的过程

如果用MSVC编译开源库实在是麻烦,主要的麻烦在于第三方的开源库本身还需要一些依赖库,这些依赖库在windows多数并不提供编译好的二进制版本,所以要先编译安装各种依赖库,比如glib。 我也曾想用官方提供的二进制库(http://ftp.gnome.org/pub/gnome/binaries...

2018-05-21 23:55:24

阅读数:450

评论数:0

thrift:在cygwin下编译C library for win32(lib/c_glib)

如果要编译thrift的C++ 库,参照thrift官方的说明:Building thrift on Windows (Native) 使用cmake 编译还是比较方便的。(有空专门写一个thrift c++库的编译过程) 但是要在windows下编译thrift C library,用MSV...

2018-05-20 14:20:03

阅读数:203

评论数:0

git submodule update报错: error: Server does not allow request for unadvertised object

周末在家里做了一些工作,周一到办公室,执行git更新办公室电脑上的代码时,报错了 git submodule update –init faceapi-rpc-cpp/dependencies/common_source_cpp/ error: Server does not all...

2018-05-14 13:01:17

阅读数:1125

评论数:2

C++11:模板函数实现支持变长参数的简单日志输出

开源的世界,现成的轮子很多,但如果现成的轮子太重太复杂,有的时候也不妨自己发明个轻便的轮子用起来更趁手。 经常我们在程序中需要打调试信息或普通的屏幕输出,大多情况情况下,用printf就可以将就了,但printf用志来也不是太方便: 需要为不同的参数类型指定不同的输出格式(%s,%d....

2018-05-06 23:16:49

阅读数:199

评论数:0

C++11:基于STL对string,wstring进行大小写转换

C++标准库有对字符进行大小写转换的函数,但并没有提供对字符串的大小写转换函数,对C++ std::string进行字符串转换网上有很多文章了, 对于std::string,使用STL库algorithm中的transform模拟函数就可以实现,比如这篇文章: 《C++对string进行大小写...

2018-05-05 15:11:25

阅读数:366

评论数:0

vs2015:/utf-8选项解决UTF-8 without BOM 源码中文输出乱码问题

本来我已经参考网上关于C++中文输出乱码的文章解决了,如下面的代码输出前调用wcout.imbue设置locale,就可以正常输出中文了。 std::wcout.imbue(std::locale(std::locale(), "", LC_CTYPE))...

2018-05-05 11:17:36

阅读数:1510

评论数:0

c++11:基于STL实现字符串分割更简单 wstring,string split

关于string的分割,网上有好多好多写得很详细的文章,但基本上都是基于标准C++的。 比如下面这段代码基于strtok函数实现的split(from 《C++之split字符串分割》): vector<string> split(const s...

2018-05-04 14:36:32

阅读数:474

评论数:0

提示
确定要删除当前文章?
取消 删除