我在DLL中写了一个类 class AFX_EXT_CLASS CA
在另一个exe中 定义了CA a,
但在调用a.f()方法时,报内存错误。为什么?然后我定义 CA * a;
a = new CA;
a->f();
delete a;
此时a->f();没报错误,但在delete a时报错,为什么?
请高手指点!

解决方案 »

  1.   

    CA必须有析构函数,delete才不会报错。
      

  2.   

    CA的类的成员和函数
    class CA

    public:
       f();
       int a;

    CA::CA()
    {
    }
      

  3.   

    请检查:
    1、参数调用方式是否一致,如定义时为__stdcall,使用时也要同样定义。
    2、检查字节对齐方式是否一致,默认字节是8字节对齐。
    project -> settings -> c/c++ -> catagory (code generation) -> struct member alignment
      

  4.   

    检查你的CLASS是否定义为导出类。