arx里经常出现需要指针引用型参数的函数,最典型的就是
acdbOpenObject(
T_OBJECT *& pObj,
AcDbObjectId id,
AcDb::OpenMode mode,
bool openErased = false);
此时pObj指针不需要初始化,只要声明一下,直接传进去就可以了,
但是不能delete它,否则会崩溃。
还有些情况特殊一点,比如AcDbLayout的getPlotCfgName函数,它的声明为
getPlotCfgName(const char*& plotCfgName) const;
传一个TCHAR*给它就OK了,
TCHAR *CfgName;
pLayout->getPlotCfgName(CfgName);
也不要delete它,否则会报错,也不要用这种方式调用
CString cfgName;
pLayout->getPlotCfgName((TCHAR*&)cfgName);
因为CString在函数完成后会被析构,其包含的字符串也会被delete