typedef struct 
{
COleDateTime   m_time;//时间
    float          m_data;//数据
}tdime;/*******************上面为自定义结构体***************************/class __declspec(dllexport) CFore: public CObject  
{   
DECLARE_SERIAL(CFore)
public:
CFore();
virtual ~CFore();
    void Serialize(CArchive& ar);public:

COleDateTime         dFACBEGTIME;//预报因子序列起始时间
COleDateTime         dFACENDTIME;//预报因子序列结束时间
CObArray             caResult;//预报结果
};/*****************以上为头文件中定义**************************************/
/******下面为CPP***************************************/
extern __declspec(dllexport) void YUWEN(CFore *m_param)
{CArray<tdime,tdime>*pArr1=new CArray<tdime,tdime>; tdime tmp;
int pp=m_param->caResult.GetSize();

COleDateTimeSpan timeSpan;
timeSpan = m_param->dFACENDTIME-m_param-> dFACBEGTIME; 
int nDay = timeSpan.GetDays()+1;
COleDateTime time1=m_param-> dFACBEGTIME;

CArray<tdime,tdime>*pArr1=new CArray<tdime,tdime>; 
fot(int tt=0;tt<nDay;tt++)
{
   COleDateTimeSpan span(tt,0,0,0);
   x[tt]=tt*tt
   tmp.m_date=x[tt];
   tmp.m_time=time1+span;
   pArr1->Add(tmp);  
}
for(io=0;io<pp;io++)
{
   CArray<tdime,tdime>*pArr=(CArray<tdime,tdime>*)m_param->caResult.GetAt(io);
   delete pArr;
}
m_param->caResult.RemoveAll();
m_param->caResult.Add(pArr1);
}这是在DLL里的编译,我这里需要把结果想x[tt]压入到caResult中去,这是我写的,但是总是压不进去,最后结果输出的是数据m_date与时间的对应m_time求教各位大侠!

解决方案 »

  1.   

    把pArr放到caResult中元素...保存指针,或者数据拷贝放入数组
      

  2.   

    把下面的去掉;你都进行了释放操作了,结果可想而知;
    for(io=0;io <pp;io++) 

      CArray <tdime,tdime>*pArr=(CArray <tdime,tdime>*)m_param->caResult.GetAt(io); 
      delete pArr; 

    m_param->caResult.RemoveAll(); 
    m_param->caResult.Add(pArr1); 
      

  3.   

    谢谢你们,特别感谢mengde007,问题就出在那里了,我最后把for(io=0;io <pp;io++) 

      CArray <tdime,tdime>*pArr=(CArray <tdime,tdime>*)m_param->caResult.GetAt(io); 
      delete pArr; 
    } 这个去掉了,把m_param->caResult.RemoveAll(); 提到程序的最前方了。多谢!!!