meiyxq
驱动牛犊
驱动牛犊
  • 注册日期2010-04-22
  • 最后登录2012-08-17
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望251点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2323回复:1

驱动中不能 用二维数组吗?请大侠指教!

楼主#
更多 发布于:2010-05-20 12:09
代码如下:
  当在while循环中有 pstr[index][0] = (char*)ExAllocatePool(NonPagedPool() 类似时 ,就会出现如下错误
    error LNK2019: unresolved external symbol __chkstk referenced in function "void __stdcall
    如果把while注释掉!整个程序没有问题!请问为什么?我试过PAGED_LOOKASIDE_LIST 也同样存在这样的问题..


程序本身一个字符串辨识的作用!
void SplistStr(char* pFileBuffer,int nFileLen)
{
       char* pstr[100[10];
    char* pMark    = "#";
    char* ptmpMark = ",";

    char* pTemp    = NULL;
    char* ptmp     = NULL;
    int   index    = 0;
    int  nSpace    = 0;
    int  nLen      = 0;
    int  nsubLen   = 0;

    if(pFileBuffer == NULL) return;
    for (int i=0;i<MAXROW;i++)
    {
        for (int j= 0;j<MAXCOL;j++)
        {
            pstr[j] = NULL;
        }
    }            
    while ((pTemp = strstr(pFileBuffer + nSpace,pMark)) != NULL)
    {
        int  nTemp     = 0;
        int nsubIndex  = 1;
        nLen           = pTemp - pFileBuffer - nSpace ; // 当前的获取到的字符串长度
        pstr[index][0] = (char*)ExAllocatePool(NonPagedPool,nLen +1);;
        
        memset(pstr[index][0],0,nLen +1);
        memcpy(pstr[index][0],pFileBuffer + nSpace,nLen);

        nSpace = nSpace + nLen + strlen(pMark);
        if(nSpace >= nFileLen)     break;
        index++;
    }
}
meiyxq
驱动牛犊
驱动牛犊
  • 注册日期2010-04-22
  • 最后登录2012-08-17
  • 粉丝0
  • 关注0
  • 积分38分
  • 威望251点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2010-05-20 12:48
解决了!跟MAXROW有关系!目前测试不能大约100,难道有规定吗?
游客

返回顶部