发信人: andonior()
整理人: wenbobo(2002-12-06 22:21:47), 站内信件
|
DLL中虚析构函数为何不能用?
我在DLL中定义了一个类,这个类有个虚析构函数, 从这个类继承的一个类中实际定义了析构函数, 做成的DLL一被调用就。。。。 我记得在DLL中不能申请内存给外部使用,但这样不算申请吧? 有那位高手知道为什么吗?
附: DLL的程序 a.h #include <windows.h> #ifdef _USRDLL #define EXPORT __declspec(dllexport) #else #define EXPORT #endif class EXPORT P { public: P(); virtual ~P(); }; class EXPORT A : public P { public: A(); ~A(); };
a.cpp: #include "a.h" A::A(){} A::~A(){} P::P(){} P::~P(){}
调用的程序 main.cpp #include "a.h"
void main() { A * p = new A; delete p; }
-- ------------------------ 悄悄地来,悄悄地去, 挥挥手,带不走一片云彩。 ------------------------
※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.101.190.115] =================================================================================== 发信人: tgm98 (夏雪), 信区: CLanguage 标 题: Re: DLL中虚析构函数为何不能用? 发信站: 网易虚拟社区 (Wed Sep 1 10:49:39 1999), 站内信件 : ....... dll一般只能EXPORT 函数,如果是类的话,就有点特殊,你要好好看微软的文档 说明,有一些特殊的要求。另外,DLL中是可以申请内存给外部使用的,但在释放 时,最好也在DLL中释放。 -- 我一直认为严肃和忠贞是生命中最美的东西, 严肃地生活,严肃地学习,严肃地工作。。。 忠贞地爱人,忠贞地承诺,忠贞地思考。。。 可是,在这个物欲横流的堕落的世界, 又有谁能相信我的严肃和忠贞? ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.96.191.59]
|
|