CMakeLists.txt
cmake_minimum_required(VERSION 3.15)
project(quoteE)
set(CMAKE_CXX_STANDARD 14)
include_directories("./include")
link_directories(lib)
##link_libraries(libMdPbParse)
add_executable(quoteE main.cpp)
target_link_libraries(quoteE libMdPbParse.so dl )
main.cpp
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <dlfcn.h>
#include <cstring>
#include <arpa/inet.h>
#include "MPPT_serialize_QuoteE.hpp"
using namespace AtgoMdPbParse;
//typedef void ( *funcpb2md)(AtgoMDHead &md, const PBHead& pb);
int main() {
FILE *file=fopen("/home/xiaoming/RScript/quoteE/QuoteE_20190927","rb");
if(file==nullptr){
return -1;
}
std::cout<<"============1====="<<std::endl;
/*
void *handle =dlopen("libMdPbParse.so",RTLD_LAZY);
if(handle ==nullptr){
return -1;
printf("Error:%s:dlopen\n",dlerror());
}
std::cout<<"============2====="<<std::endl;
funcpb2md pfuncpb2md = (funcpb2md)dlsym(handle,"pb2md");
std::cout<<"============3====="<<std::endl;
if(pfuncpb2md==nullptr){
printf("Error:%s:dlsym\n",dlerror());
return -1;
}
*/
std::cout<<"============4====="<<std::endl;
int count = 0 ;
while(!feof(file)){
std::cout<<"================="<<std::endl;
unsigned char head[5] = { 0 };
fread(head, 1, 4, file);
int nLen = ntohl(*(int*)head);
printf("%d\n", nLen);
if (nLen > 0)
{
PBHead pbHead;
pbHead.setNbyte(7, nLen);
//char ss[200] = { 0 };
unsigned char* p = pbHead.setPTopic();
fread(p, 1, nLen + 7, file);
AtgoMDHead head;
memmove(pbHead.setPTopic(), pbHead.setPTopic() + 4, 3);
pfuncpb2md(head, pbHead);
AM_QuoteE* pQuoteE = (AM_QuoteE*)head.data;
printf("%d\n", pQuoteE->time);
count++;
}
}
std::cout << "Hello, World!" << std::endl;
return 0;
getchar();
}