typedef struct tagNetworkList{
int iStat;
char szName[48];
char szSName[32];
char szCode[32];
}NETWORKLIST,*LPNETWORKLIST;//这是函数原型
bool GetTotalOperator(LPNETWORKLIST  *operatorList)
{
    char ans[128], *send = "AT+COPS=?\r\n";
char *p = NULL;
CString operatorvalue;
        LPNETWORKLIST tempvalue = new NETWORKLIST;
ZeroMemory(tempvalue,sizeof(NETWORKLIST));
WriteComm(send,strlen(send));
while(1)
{
if (ReadComm(ans,128))
{
if ((p = strstr(ans,"+COPS:")) != NULL)
{
p += 8;
                int state = atoi(&p[0]);
                tempvalue->iStat = state;
 
p += 3;
operatorvalue = p;
int pos = operatorvalue.Find("\"");
                strncpy(tempvalue->szName,p,pos);
                AfxMessageBox(tempvalue->szName);
p += (pos+3);
                operatorvalue = p;
pos = operatorvalue.Find("\"");
strncpy(tempvalue->szSName,p,pos);

p += (pos+3);
operatorvalue = p;
pos = operatorvalue.Find("\"");
strncpy(tempvalue->szCode,p,pos);
operatorList = &tempvalue;//在这里operatorList已经得到了需要传回的值,我调试了,值都正确
return true;
}
else if (strstr(ans,"ERROR") != NULL)
break;
}
}
return false;
}//在这里调用
void CTestWirelessDlg::OnButton4() 
{
// TODO: Add your control notification handler code here
LPNETWORKLIST operatorList = new NETWORKLIST;
ZeroMemory(operatorList,sizeof(NETWORKLIST));
OpenComm("Com3",460800);
CString abc;
GetTotalOperator(&operatorList);
abc.Format("当前可用网络:  [%d]  " ,operatorList[0].iStat);
AfxMessageBox(abc);
}
//很郁闷,为什么我在Onbutton4中的operatorList接收的值全是'0'值,请各位帮帮忙
这个函数的功能 是将所有可用的网络运营商输出来,在函数里,我只将第一个输出来(只是先测试一下)