欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → C++二次开发数据获取

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3014人关注过本帖树形打印复制链接

主题:C++二次开发数据获取

帅哥哟,离线,有人找我吗?
ydding
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2016/11/15 13:28:29
C++二次开发数据获取  发帖心情 Post By:2017/2/13 16:53:00 [只看该作者]

C++二次开发:AddinDemo里面REPORT_STRUCT_EX这个数据结构的数据怎么获取,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/13 17:44:22 [只看该作者]

用来代替 REPORT_STRUCT 结构的。

把用到的REPORT_STRUCT结构都强行替换到REPORT_STRUCT_EX结构即可正常使用



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
ydding
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2016/11/15 13:28:29
  发帖心情 Post By:2017/2/14 15:42:18 [只看该作者]

REPORT_STRUCT_EX* report = (REPORT_STRUCT_EX*)stData.m_pReport;
我试了一下,是这样转换的,但是运行时候软件会崩溃,取出来的结果在附件里面,数据肯定不对。
是不是我用错了,有没有例子可以参考
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/14 20:07:36 [只看该作者]

可否给出一个稍微具体一些的测试代码呢?

您只给这2句代码让我们如何帮您解决问题呢?



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
ydding
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:13 积分:0 威望:0 精华:0 注册:2016/11/15 13:28:29
  发帖心情 Post By: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();
}
}
}
谢谢!附件是运行结果
图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2017/2/15 12:13:58 [只看该作者]

看到您的代码了,你的理解是有问题的,通过PCALCINFO结构拿到的stData.m_pReport这个指针是只有当前及时报价数据,没有历史数据的,因此你不能用report[i].m_upperLimitPrice 这样的数组方法去遍历的,会造成内存越界的


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部