嘿,亲!知识可是无价之宝呢,但咱这精心整理的资料也耗费了不少心血呀。小小地破费一下,绝对物超所值哦!如有下载和支付问题,请联系我们QQ(微信同号):813200300
本次赞助数额为: 2 元微信扫码支付:2 元
请留下您的邮箱,我们将在2小时内将文件发到您的邮箱
Choice数据量化接口 Windows平台C 库、文档及实例
int _tmain(int argc, _TCHAR* argv[])
{
char DllPath[MAX_PATH] = {0};
#ifdef _WIN64
strcpy_s(DllPath, "../lib/EmQuantAPI_x64.dll");
#else
strcpy_s(DllPath, "../lib/EmQuantAPI.dll");
#endif
//加载dll地址
HMODULE hDll = LoadLibraryA(DllPath);
if(hDll == NULL)
{
return 0;
}
emsetserverlistdir = (psetserverlistdir)GetProcAddress(hDll, "setserverlistdir");
emsetcallback = (psetcallback)GetProcAddress(hDll, "setcallback");
emmanualactivate = (pmanualactivate)GetProcAddress(hDll, "manualactivate");
emsetproxy = (psetproxy)GetProcAddress(hDll, "setproxy");
emstart = (pstart)GetProcAddress(hDll, "start");
emstop = (pstop)GetProcAddress(hDll, "stop");
emgeterrstring = (pgeterrstring)GetProcAddress(hDll, "geterrstring");
emcsd = (pcsd)GetProcAddress(hDll, "csd");
emcss = (pcss)GetProcAddress(hDll, "css");
emtradedates = (ptradedates)GetProcAddress(hDll, "tradedates");
emsector = (psector)GetProcAddress(hDll, "sector");
emgetdate = (pgetdate)GetProcAddress(hDll, "getdate");
emcsq = (pcsq)GetProcAddress(hDll, "csq");
emcsqcancel = (pcsqcancel)GetProcAddress(hDll, "csqcancel");
emreleasedata = (preleasedata)GetProcAddress(hDll, "releasedata");
emcsc = (pcsc)GetProcAddress(hDll, "csc");
emcmc = (pcmc)GetProcAddress(hDll, "cmc");
emchmc = (pchmc)GetProcAddress(hDll, "chmc");
emcst = (pcst)GetProcAddress(hDll, "cst");
emctr = (pctr)GetProcAddress(hDll, "ctr");
emcsqsnapshot = (pcsqsnapshot)GetProcAddress(hDll, "csqsnapshot");
emcps = (pcps)GetProcAddress(hDll, "cps");
empquery = (ppquery)GetProcAddress(hDll, "pquery");
emporder = (pporder)GetProcAddress(hDll, "porder");
emedb = (pedb)GetProcAddress(hDll, "edb");
emedbquery = (pedbquery)GetProcAddress(hDll, "edbquery");
empcreate = (ppcreate)GetProcAddress(hDll, "pcreate");
empdelete = (ppdelete)GetProcAddress(hDll, "pdelete");
empreport = (ppreport)GetProcAddress(hDll, "preport");
emtradedatesnum = (ptradedatesnum)GetProcAddress(hDll, "tradedatesnum");
emcfn = (pcfn)GetProcAddress(hDll, "cfn");
emcfnquery = (pcfnquery)GetProcAddress(hDll,"cfnquery");
emcnq = (pcnq)GetProcAddress(hDll,"cnq");
empcnqcancel = (pcnqcancel)GetProcAddress(hDll,"cnqcancel");
empctransfer = (ppctransfer)GetProcAddress(hDll,"pctransfer");
emcses = (pcses)GetProcAddress(hDll,"cses");
emchq = (pchq)GetProcAddress(hDll, "chq");
emchqcancel = (pchqcancel)GetProcAddress(hDll, "chqcancel");
emchqsnapshot = (pchqsnapshot)GetProcAddress(hDll, "chqsnapshot");
emcfc = (pcfc)GetProcAddress(hDll, "cfc");
emcec = (pcec)GetProcAddress(hDll, "cec");
if( !emsetserverlistdir || !emsetcallback || !emmanualactivate || !emsetproxy || !emstart || !emstop || !emgeterrstring || !emcsd || !emcss || !emtradedates || !emsector
|| !emgetdate || !emcsq || !emcsqcancel || !emreleasedata|| !emcsc || !emcmc || !emchmc || !emcst|| !emctr || !emcsqsnapshot || !emcps || !empquery || !emporder
|| !emedb || !emedbquery || !empcreate || !empdelete || !empreport || !emtradedatesnum|| !emcfn || !emcfnquery || !emcnq || !empcnqcancel || !empctransfer || !emcses
|| !emchq || !emchqcancel || !emchqsnapshot || !emcfc || !emcec)
{
FreeLibrary(hDll);
printf("GetProcAddress fail. Press enter...\n");
getchar();
return 0;
}
//设置主回调函数 注:一定要设置一个主回调函数,否则收不到账号掉线通知
emsetcallback(obtainCallback);
//设置配置文件目录
emsetserverlistdir("../lib");
//初始化和设置日志回调以及登陆 option参数"TestLatency=0"服务器不测速 "TestLatency=1"服务器测速选择最优(会有个服务器测速的过程)
//本动态库中的日志是通过回调接口输出给用户,目前write2Log中只是将日志输出到屏幕,用户可以更改为写到文件
EQErr errid = emstart(NULL, "TestLatency=0,ForceLogin=1", write2Log);
if(errid != EQERR_SUCCESS)
{
printf("Login fail [%d] %s. Press enter to continue\n", errid, emgeterrstring(errid, eLang_en));
getchar();
return 0;
}
//注意:2.4.0.0改动点
//异步函数末尾增加了错误码返回参数,在调用时可以根据错误码来判断是否请求成功
//异步函数支持设置每个请求分别设置不同的回调函数,就不需要根据流水号来配对订阅结果了,同时会导致重连的错误不会单独在某个订阅里回调了,直接转化成服务器重连的错误在主回调通知
//每个函数流水号分别生成(原先是全局生成的),如需使用需要根据requestid serialid一起来区分。
printf("登录成功\n");
Sleep(2000);cfcTest();
Sleep(2000);cecTest();
Sleep(2000);cfntest();
Sleep(2000);cfnquerytest();
Sleep(2000);cfntest2();
Sleep(2000);
int nId =cnqtest();
Sleep(2000);
int nId2 = cnqtest2();
Sleep(1000);
printf("cnqcancel subscribe %d \n",nId2);
cnqtest3();
Sleep(2000);
empcnqcancel(nId2);
int ncount = 0;
while(1)
{
Sleep(1000);
if( ncount == 60)
break;
}
printf("cnqcancel subscribe \n");
empcnqcancel(0);
Sleep(2000); tradedatesnumTest();
Sleep(2000); cmcTest();
Sleep(2000); csdTest();
Sleep(2000); cssTest();
Sleep(2000); csesTest();
Sleep(2000); tradedatesTest();
Sleep(2000); sectorTest();
Sleep(2000); getdateTest();
Sleep(2000); csqsnapshotTest();
Sleep(2000); ctrTest();
Sleep(2000); cpsTest();
Sleep(2000);
errid = pcreateTest();
if(errid == EQERR_SUCCESS)
{
Sleep(2000); pctransferTest();
Sleep(2000); porderTest();
Sleep(2000); preportTest(1);
Sleep(2000); preportTest(2);
Sleep(2000); pqueryTest();
Sleep(2000); pdeleteTest();
}
Sleep(2000); edbTest();
Sleep(2000); edbqueryTest();
Sleep(2000); cstTest();
Sleep(2000); csqTest();
//csq订阅20秒钟后取消订阅
int count = 0;
while(1)
{
Sleep(10);
if( count == 2000)
break;
}
csqcancelTest();
printf("按任意键退出\n");
getch();
//退出
emstop();
FreeLibrary(hDll);
return 0;
}
.
├── Choice数据量化接口 Windows平台C 库、文档及实例_EMQuantAPI_CPP.zip
└── EMQuantAPI_CPP
├── EMQuantAPI_CPP.pdf
├── EmQuantAPISample
│ ├── EmQuantAPISample
│ │ ├── EmQuantAPISample.cpp
│ │ ├── EmQuantAPISample.vcxproj
│ │ ├── EmQuantAPISample.vcxproj.filters
│ │ ├── EmQuantAPISample.vcxproj.user
│ │ ├── stdafx.cpp
│ │ ├── stdafx.h
│ │ └── targetver.h
│ ├── EmQuantAPISample.sln
│ ├── bin
│ │ ├── EmQuantAPISample.exe
│ │ └── EmQuantAPISample_x64.exe
│ ├── include
│ │ └── EmQuantAPI.h
│ └── lib
│ ├── EmQuantAPI.dll
│ ├── EmQuantAPI.lib
│ ├── EmQuantAPI_x64.dll
│ ├── EmQuantAPI_x64.lib
│ ├── LoginActivator.exe
│ └── ServerList.json.e
└── 指标手册V2.5.3.0.CHM
6 directories, 20 files