在 dll中有如下函数void Fun( int nDataLen )
{
    LPTSTR lpTempData = new TCHAR[nDataLen];
    //这里居然分配不到内存空间,高手指点一下
}

解决方案 »

  1.   

    nDataLen 是不是太大了?
      

  2.   

    可能是nDataLen太大了,另外没必要在dll中new呀,你可以在exe应用中new,然后传递指针进去
      

  3.   

    nDataLen 是动态的 大概在 1600 以上, exe 也不好直接传递 ,因为是接收到的几段网络数据合并的。
      

  4.   

    我用 GlobalAlloc( ); 可以解决一部分问题,可是还是不能完全解决 , 好象和堆有关系,那位高手指点一一下
      

  5.   

    32位windows下头,DLL使用调用者的堆和栈,DLL没有自己的堆和栈。
    VC编译的EXE,缺省的栈大小是1M.
    可以加link选项 stack: stacksize 来改变 EXE的栈大小。建议大的数据不要在栈里头分配。