addindemo里的
:g_pMainFormework->GetDataInfo(&stData)) 的使用有个疑问, 希望有人指点一下.
疑问1: PCALCINFO stData = {0};里面的m_pMainData 看定义是一个指针(HISTORY_STRUCTEx * )
例子程序里这个指针使用前不用初始化?
疑问2:下面的代码.执行下来取到1000个数据. 但数据很乱. 其中m_timeDate 都是0. 而且m_fClose也非常混乱. 是什么原因呢?
谁能提供一个 比addindemo更加详细的例子程序可以参考. 谢谢.
下面是源码:
//////////////////////////////////////////////////////////////////////////
void CMainWindowDlg::OnButton1Gedata()
{
//读取上海市场的600000日线数据范例
PCALCINFO stData =
{0};
stData.m_dataType = DAY_DATA;//日线
stData.m_bIsPow = 1;
//是否复权
stData.m_wMarket = 'HS';
strcpy(stData.m_szLabel,"600000"); //读取600000 浦发银行数据
int
icount;
if(g_pMainFormework->GetDataInfo(&stData))
{
CString
strText;
for(int i = 0; i < stData.m_nNumData; i++)
{
strText.Format("%d 收%f",
stData.m_pMainData[i].m_timeDate,stData.m_pMainData[i].m_fClose);
WriteLog(strText);
//....
}
strText.Format("共取到%d个数据",stData.m_nNumData);
AfxMessageBox(strText);
}
}
1,你可以检索一下m_pMainData 的定义,范例代码中已经做了初始化了。
2,你应该是用的高版本编译器,time_t字段类型是64位的,金字塔要求是32位,你改成DWORD就好了
这个定义stData是个局部变量啊,你的意思是里面的数据在这个函数外做了初始化?
整个项目搜索了一下,貌似也没有找到....
void CMainWindowDlg::OnButton1Gedata()
{
//读取上海市场的600000日线数据范例
PCALCINFO stData = {0};
stData.m_dataType = DAY_DATA;//日线
stData.m_bIsPow = 1; //是否复权
stData.m_wMarket = 'HS';
strcpy(stData.m_szLabel,"600834"); //读取600000 浦发银行数据
int icount;
if(g_pMainFormework->GetDataInfo(&stData))
{
CString strText;
for(int i = 0; i < stData.m_nNumData; i++)
{
strText.Format("%d 收%f", stData.m_pMainData[i].m_timeDate,stData.m_pMainData[i].m_fClose);
WriteLog(strText);
//....
}
strText.Format("共取到%d个数据",stData.m_nNumData);
AfxMessageBox(strText);
}
}
抱歉之前没理解你的意思,m_pMainData 这个指针的地址是调用返回后,金字塔内部分配好的,你无需初始化的。