以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 高级功能研发区 (http://weistock.com/bbs/list.asp?boardid=5) ---- C++二次开发数据获取 (http://weistock.com/bbs/dispbbs.asp?boardid=5&id=147707) |
-- 作者:ydding -- 发布时间:2017/2/13 16:53:00 -- C++二次开发数据获取 C++二次开发:AddinDemo里面REPORT_STRUCT_EX这个数据结构的数据怎么获取,谢谢! |
-- 作者:王锋 -- 发布时间:2017/2/13 17:44:22 -- 用来代替 REPORT_STRUCT 结构的。 把用到的REPORT_STRUCT结构都强行替换到REPORT_STRUCT_EX结构即可正常使用 |
-- 作者:ydding -- 发布时间:2017/2/14 15:42:18 -- REPORT_STRUCT_EX* report = (REPORT_STRUCT_EX*)stData.m_pReport; 我试了一下,是这样转换的,但是运行时候软件会崩溃,取出来的结果在附件里面,数据肯定不对。
|
-- 作者:王锋 -- 发布时间:2017/2/14 20:07:36 -- 可否给出一个稍微具体一些的测试代码呢? 您只给这2句代码让我们如何帮您解决问题呢? |
-- 作者:ydding -- 发布时间:2017/2/15 10:03:48 -- 我是想取REPORT_STRUCT_EX里面涨跌停板的数据,写到csv文件 下面是我的代码: void CMainWindowDlg::OnButton1Gedata() {
PCALCINFO stData = {0};
stData.m_dataType = TICK_DATA;//单笔
stData.m_bIsPow = 0; //是否复权
stData.m_wMarket = \'JZ\';
strcpy(stData.m_szLabel,"IF00");
CString filename = "E:\\\\1.csv";
if(g_pMainFormework->GetDataInfo(&stData))
{
if(stData.m_pSubsection != NULL)
{
ofstream ofs(filename);
ofs << "时间" << ","
<< "涨停板" << ","
<< "跌停板" << endl;
REPORT_STRUCT_EX* report = (REPORT_STRUCT_EX*)stData.m_pReport;
for(int i = 0; i < stData.m_nNumSubData; i++)
{
ofs << report[i].m_time << ","
<< report[i].m_upperLimitPrice << ","
<< report[i].m_lowerLimitPrice << endl;
}
ofs.close();
}
} }
|
-- 作者:王锋 -- 发布时间:2017/2/15 12:13:58 -- 看到您的代码了,你的理解是有问题的,通过PCALCINFO结构拿到的stData.m_pReport这个指针是只有当前及时报价数据,没有历史数据的,因此你不能用report[i].m_upperLimitPrice 这样的数组方法去遍历的,会造成内存越界的 |