【发布时间】:2011-01-10 07:55:53
【问题描述】:
关于 DLL 和不同版本的运行时,我有一些不清楚的地方。
我知道,例如,如果在我的 DLL 中我有这样的函数:
void deletePointer(int *something)
{
delete something;
}
如果在我的 main() 函数中使用 new 分配了某些内容,这可能会导致问题。我不清楚的地方如下:
假设我在 DLL 中有一个类,我在 main 中实例化它,然后尝试再次执行此操作,它仍然是一个问题吗?
例如: //在我的DLL中
class Base
{
void deletePointer(int *something)
{
delete something;
}
}
//在exe中
int main()
{
Base * base = new Base();
int * myInt = new int(23);
base->deletePointer(myInt); //is this a problem?
}
基本上我不清楚的是,如果我实例化删除指针的 DLL 类,运行时“分配它的人必须删除它”规则是否适用。
谢谢
【问题讨论】: