我是用CDialogImpl继承的一个com对话框组件类
在这个组件里发生了非常奇怪的现在
添加成员变量CString(WTL的)只要对它进行赋值,马上就要死
原因是m_pchData成员为空,如果是临时变量CString就没有问题
换成stl的string出问题也是一样
现在我在里面添加一个窗口派生于CWindowImpl的,如果这个窗口是成员变量CreateWindow的时候就会报此窗口类内部m_hWnd不为空,然后垮掉
综上我感觉是类成员变量都没有调他们自己的构造函数,我想知道在什么情况下不会调类成员变量的构造函数呢?
我的com组件构造函数,FinalConstruct, FinalRelease都是默认生成的,都是有的,而且FinalConstruct是调进去了的
万分感谢

解决方案 »

  1.   

    顶一下,大家帮忙分析一下原因
    我的其他对话框组件类都是对的,只有这个,一声明带构造和析构函数的类成员变量就会垮。而我跟了,比如CString这些都还是进去了它自己的缺省构造函数的,但是一赋值就要垮。而CWindowImpl的类成员变量居然初始化后还没CreateWindow,m_hWnd就不为NULL,感觉太奇怪了,如果成员变量是指针,在堆上分配就没有问题。
    我感觉是栈被弄乱了,但是不知道为什么原因,因为我在此组件的FinalConstruct里面赋值一样的会垮
    谢谢