C/C++
斗笔丶学徒
这个作者很懒,什么都没留下…
展开
-
C++ 关于ProtoBuf的使用记录
对 ProtoBuf 的基本概念有了一定了解之后,具体该如何使用 ProtoBuf。第一步,创建 .proto 文件,定义数据结构,如下例1所示:// 例1: 在 xxx.proto 文件中定义 Example1 messagemessage Example1 { optional string stringVal = 1; optional bytes bytesVal = 2; message EmbeddedMessage { int32 int32Va转载 2021-07-05 11:41:24 · 435 阅读 · 0 评论 -
struct 与char*互转
struct 与char*互转struct 与char*互转struct 与char*互转struct s_obj{int id;char name[4];};char* t = (char*) s_obj;strcpy((char )& s_obj,t);Struct与Char之间可以相互转换,但是要注意内存对齐的问题。对齐的简单办法,使用wsprintf();...原创 2021-04-01 15:49:49 · 1801 阅读 · 0 评论 -
关于在Linux下装载调用链接库,排查问题的一些手段和语句使用
背景:接第三方的行情接口,使用第三方的so文件和demo,并且将第三方的so进一步封装进本方的动态链接库中(假设就叫CDHmarketApi.so 随便起的,如有雷同,纯属巧合),成为本方链接库的一个行情订阅功能模块;遇到的一些问题:这个问题表明是符号未定义的问题,而且直接定位于产品链接的第三方库中,因为没有这个第三方库的源码,给排查增加了难度。错误定位:这块可以通过ldd -r命令查看生成的so是否存在符号未定义的内容。 ldd -r libCDHMarketApi.so发现果然有原创 2020-12-15 14:21:01 · 238 阅读 · 0 评论 -
boost 多索引容器的初涉
对于业务复杂的实时数据计算,存在联合主键,多条件查询,C++一些存储结构比如map,vector等结构不够适用,如果把数据库拿来数据存储,又太大勒。boost库里面的多索引容器是个不错的选择。自己做了个简单的例子,在这里存一下,打个tag;大佬们有什么意见也多提一提,共同进步。头文件:#include <boost/multi_index_container.hpp>#include <boost/multi_index/identity.hpp>#include <b原创 2020-11-27 14:10:40 · 284 阅读 · 0 评论 -
关于struct 结构体与memset的狗血教训
关于struct 结构体与memset的狗血教训在利用struct进行数据封装时,经常会使用memset(this,0,sizeof(*this))来初始化。而C++中,有时候也会用到struct,在利用memset进行初始化时,非常容易踩坑,可谓是菜鸟杀手!看段代码:struct QuoteField{ //tag==10028 报价时间 std::string SCQuoteTime; //tag==132 double bidPx_s; //tag==133 double o原创 2020-11-26 14:49:52 · 4070 阅读 · 0 评论 -
编译并使用quickfix做demo时的一些问题和解决<Linux C++>
1、编译Linux libquickfix.so问题描述:a.将windows下的使用编译工程上传到Linux,并按步骤编译,./boostrap报错,文件存在格式问题解决:windows下脚本文件移植Linux存在格式问题,需要dos2unix处理;b.解决a问题后发现,configure.ac文件存在...原创 2020-11-13 16:58:37 · 889 阅读 · 1 评论 -
C++11 关键字
原创 2020-09-03 09:56:22 · 156 阅读 · 0 评论 -
运行时 并不希望我的执行程序调用LINUX系统默认的链接库
问题:我的执行程序执行时需要调用到系统的libc++.so.6.0;但是该链接库并版本不能支持我的执行程序(执行程序 编译生成的环境比当前环境的gcc版本要高)解决:将合适版本的链接库 添加当前生效的环境变量中命令:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/quant/hft_oracl…用ldd myexe命令可以看出现在libstdc++.so.6已经从系统路径中 /usr/lib64/改成了我指定的路径了...原创 2020-08-14 09:49:30 · 153 阅读 · 0 评论 -
boost 日期操作的算法库
以下是算法你库的包含文件,一些操作函数在这些文件中定义声明#include<boost/date_time.hpp>#include <boost/date_time/posix_time/ptime.hpp>#include <boost/date_time/gregorian/gregorian.hpp>图片摘自网络///测试时间 typedef boost::posix_time::ptime ptime; using namespace boost原创 2020-08-11 13:27:01 · 149 阅读 · 0 评论 -
C++ api接口实现(Windows+Linux)
#if defined(LINUX)#define API_WRAPPER_EXPORT_SPEC __attribute__((visibility("default")))#else#define API_WRAPPER_EXPORT_SPEC __declspec(dllexport)#endifextern "C" API_WRAPPER_EXPORT_SPEC CLASS_Oject* CreateApi();extern "C" API_WRAPPER_EXPORT_SPEC原创 2020-08-06 13:40:03 · 1142 阅读 · 0 评论 -
C++ 用SQLAPI连接非默认端口号的mysql
问题:ConnectDB(DatabaseName, UserName, Password, sa_Client)该参数没有指定数据库连接地址的端口;端口号不是3306怎么办?解决:1)sa_Client=SA_mysqlDatabaseName=xxx.xxx.xxx.xxx@quant_paperUserName=bookPassword=book连接成功2)sa_Client=SA_mysqlDatabaseName=xxx.xxx.xxx.xxx:3306@quant_pa原创 2020-08-06 11:31:28 · 208 阅读 · 0 评论 -
Linux下 执行程序找不到动态链接库(*.so)
问题:用cmake编译好的执行程序,运行时一直报找不到依赖的动态链接库,在配好环境变量路径之后还是报找不到?解决:配好环境变量路径之后,一定要记得执行ldconfig;不仅仅如此,只要对/user/lib文件夹或者往已经存在的环境变量中添加新lib,一定一定到一定记得刷新!执行ldconfig!...原创 2020-07-31 17:15:13 · 390 阅读 · 0 评论 -
C++ 在Linux下 编译动态链接库有关的符合表导出控制
前几天需要在Linux下编译一个动态链接库,只知道加载不到对应的so文件,后面找到一篇英文博客,感觉有思路了,写的很明白,安利一波。博客链接: 点一下我.转载 2020-07-13 16:30:26 · 120 阅读 · 0 评论 -
VS项目中的筛选器
vs项目中的筛选器(filter)属性中的附加目录配置的绝对路径:是根据.filter*的路径决定的原创 2020-04-15 16:02:25 · 575 阅读 · 0 评论