定义结构
struct A{
....
};struct B{
CArray<A,A> AA;
......
};在.EXE中定义
B sB;
在.DLL中定义
B *pB;将sB的地址传递到pB在.DLL中生成数据调用pB->Add(...);
以后在.EXE可正常使用数据sB;
但调用sB.RemoveAll();却出现错误。
Debug显示:
Debug Assertion Failed
.....
.....
Expression :_CrtIsValidHeapPointer(pUserData)
.......
请教各位高手;什么原因,如何解决?
谢谢!

解决方案 »

  1.   

    :_CrtIsValidHeapPointer,内存访问的问题。
    你需要为B定义operator=和copy constructor.
      

  2.   

    在dll中添加的数据?
    那么在dll中释放吧
    可以添加一个接口来释放
      

  3.   

    exe和dll都是同一种编译类型吗?
    都是release或都是debug应该就会有这个问题
      

  4.   

    1 如果在 dll中 new,应该在 dll 中delete。
    2 如果在 exe中 new,应该在 exe 中delete。这是好的习惯。