LPCSTR 定义的和char*  不一样吗?是说LPCSTR 定义的不是变量不能修改吗?
void ParseID(LPCSTR szTmp, LPCSTR szID)
{
for(UINT n = 0, i = 0; n <= strlen(szTmp); n++)
{
if (szTmp[n] != '(')
continue;
else if (szTmp[n] == '(')
{
n++;
while(szTmp[n] != ')')
{
if (szTmp[n] == ')')
break;
else
{
szID[i] = szTmp[n]; //这里报error C2166: l-value specifies const object
i++;
}
}
break;
}
}
}

解决方案 »

  1.   

    typedef char CHAR;
    typedef CONST CHAR *LPCSTR, *PCSTR;
    LPCSTR:字符串常量
      

  2.   

    哦,谢谢,又是ifchen回答我的问题了,还有啊void ParseID(char *szTmp, char *szID)改成char * 了,能编译过去了,为啥程序执行到ParseID自己退出了?什么提示都没有?
      

  3.   

    char szChrTmp[128 + 1];
    char szengID[256 + 1];
    char szStrTmp[256 + 1];ParseID(szChrTmp, szStrTmp);
    strcpy(szengID, "abc ");
    strcat(szengID, szStrTmp);
    这样调用的。。
      

  4.   

    程序在dll中,是个TIMER,不好跟踪啊
      

  5.   

    //死循环,n没有增加while(szTmp[n] != ')') 

      if (szTmp[n] == ')') 
        break; 
      else 
      { 
        szID[i] = szTmp[n]; 
        i++; 
      } 
      

  6.   

    谢谢ifchen,有点低级的错误,呵呵
    不过为啥程序没死,而是自己退出了呢?