封装一个用ADO访问数据库的DLL,调试出错解决思路

封装一个用ADO访问数据库的DLL,调试出错
各位大侠,小弟把一个ADO访问数据库的程序改成DLL,DLL编译没有问题。但是新建了一个console工程调试的时候出错
下面这个是输出函数:
_declspec(dllexport)   int   GetInfo(const   char*   Name,   int   nCount,   COMPANY_INFO   *Info)
{      
          CADORecordset   Rs;//定义一个记录集
          int   Tempindex=0;//用于遍历数组的下标
            CString   strSqlQuery;
            CString   tempstr;
      if(nCount <0||strlen(Name)> 255)
                return   -1;
        strSqlQuery.Format(_T( "select   *   from   table1   "),Name);
        Rs.Open(m_AdoDatabase.GetActiveConnection(),strSqlQuery);//打开记录集
      if(nCount==0)
              {   //如果nCount为0,则返回记录集中的记录数
                  while(!Rs.IsEOF())
                      {  
                            nCount++;
                            Rs.MoveNext();
                    }
                    return   nCount;
              }  
          //如果传递的第二个参数不为0,则将查询信息放在数组缓冲中
  while(!Rs.IsEOF())
            {  
                  Rs.GetFieldValue(0,tempstr);//取列中的值
                  lpInfo[Tempindex].name=tempstr;
                  Rs.MoveNext();
                  if(++Tempindex==nCount)//如果数组缓冲区不够用,返回-2
                          return   -2;
                }
            //   关闭结果集
                Rs.Close();
                if(Tempindex==0)//如果找不到名称就返回-3
                        return   -3;
        return   0;
}

测试程序如下:
_declspec(dllimport)       int   GetInfo(const   char*   Name,   int   nCount,   INFO   *Info);
  _declspec(dllimport)     bool     Initfunction();
  _declspec(dllimport)     bool     MyConnectDB();
int   main()
{  
    int   tvalue=0;
    Initfunction();//就是CoInitialize(NULL)
    MyConnectDB();//连接数据库库,打开连接
    INFO     tempArray[20];
    tvalue=GetInfo( "时代 ",20,tempArray);//这里出现问题
    return   0;

}
我调试的时候,如果将函数GetInfo的第二个参数设置为0的话,则该函数能够执行,返回记录集中的记录数。但是当大于0的时候就出错了,
错误信息是 "User   breakpoint   called   at   0x7c921230 "       访问数据库的程序没有错误,但是怎么测试的时候就出错了呢?该怎样修改程序呢?