看到 C++ Builder XE2 中的以下最小示例导致访问冲突,我感到非常困惑:
在由可执行文件和DLL组成的项目中:
Project1.dll / Dummy.h:
class __declspec(dllexport) Dummy : public TObject
{
public:
__fastcall Dummy();
__fastcall ~Dummy();
};
Project1.dll / Dummy.cpp:
__fastcall Dummy::Dummy()
: TObject()
{
}
__fastcall Dummy::~Dummy()
{
}
Project2.exe / Unit1.cpp:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Dummy *d = new Dummy; // access violation occurs in constructor
delete d;
}
这两个项目都是使用默认项目选项从头开始创建的,都支持 VCL。Dummy
如果不继承自 ,则不会发生访问冲突TObject
。
我究竟做错了什么?
干杯亨德里克