一个关于 CStringArray 传参数的问题,具体代码如下
.....给数组赋值
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(); 取值就不行了呢?
什么原因呢?
求助,帮忙阿,很着急的!!!!
相关推荐
CStringArray二维数组的定义和操作
CStringArray二维数组的定义和操作 CStringArray二维数组的定义和操作
CStringArray二维数组
CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组CStringArray二维数组
VC使用CStringArray类创建和使用字符串数组
VC与C++开发基础\使用CStringArray类创建和使用字符串数组
VC 使用CStringArray类创建和使用字符串数组.rar
VC 使用CStringArray类创建和使用字符串数组, m_array.InsertAt(m_pos,m_str);//在数组的指定位置插入字符串 m_list.ResetContent();//清空列表框 for(i=0;i m_list.AddString(m_array.GetAt(i));//按数组顺序添加列表项 m_str="";//清空信息编辑框 m_pos=m_array.GetSize(); UpdateData(false); case 1://删除操作 if(m_pos<0||m_pos>=m_array.GetSize())//判断删除位置的有效性 m_array.RemoveAt(m_pos);//在数组的指定位置删除字符串 m_list.ResetContent();//清空列表框 ……
实例020——使用CStringArray类创建和使用字符串数组.zip
实例020——使用CStringArray类创建和使用字符串数组


