一个关于 CStringArray 传参数的问题,具体代码如下

火电 火电 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
CStringArray paramArray; //创建数组
.....给数组赋值

m_DealClass.DoOperate(¶mArray); //直接调用没有问题


/********** DoOperate 实现 **********/
VOID OpeateDeal::DoOperate(int ifunc, CStringArray *paramArray,HWND sendhwnd)
{
int ilen = paramArray->GetSize(); //取值没有问题
}
**********/

但是请求很多,我想异步处理,就是先将这些 paramArray 存放起来,在用一个timer触发

typedef struct
{
CStringArray *paramArray;
HWND hWnd;
} DefaultInfo;
CArray <DefaultInfo, DefaultInfo&> g_DefaultInfoArray;

DefaultInfo myStruct;
myStruct.hWnd = hWnd;
myStruct.paramArray = ¶mArray; //¶mArray就是上面直接调用的参数

g_DefaultInfoArray.Add(myStruct);
//保存到一个全局的 g_DefaultInfoArray 中


timer:

int ilen = g_DefaultInfoArray.GetSize();

if(ilen > 0)
{
for(int i=0;i<ilen;i++)
{
DefaultInfo myStruct = g_DefaultInfoArray.ElementAt(i); m_DealClass.DoOperate(myStruct.func,myStruct.paramArray,myStruct.hWnd);

}

g_DefaultInfoArray.RemoveAll();
}


这样调用 m_DealClass.DoOperate,为什么 myStruct.paramArray 传入后再通过

paramArray->GetSize(); 取值就不行了呢?

什么原因呢?

求助,帮忙阿,很着急的!!!!
...全文

相关推荐

评论 13
收藏 已收藏
分享
返回顶部
火电
VC/MFC 16,550 成员 421,606 内容