使用 Direct2d 时存在此功能:
HRESULT WINAPI D2D1CreateFactory(
_In_ D2D1_FACTORY_TYPE factoryType,
_In_ REFIID riid,
_In_opt_ const D2D1_FACTORY_OPTIONS *pFactoryOptions,
_Out_ void **ppIFactory
);
当上述方法返回时,ppIFactory 包含指向新工厂的指针的地址,因此可以使用该工厂。
我想做类似的事情,所以我在 MessageLog.h 中做了这个:
void CreateMessageLog(MessageLog**);
class MessageLog{
public:
void PutToLog(WCHAR[]);
WCHAR* GetLog();
int GetLogLenght();
int GetnLogLines();
private:
WCHAR logHistory[MaxLogSize];
int nLogLines;
};
这进入 MessageLog.cpp:
void CreateMessageLog(MessageLog** ppMessageLog)
{
MessageLog mLog;
MessageLog* pmLog=&mLog;
ppMessageLog=&pmLog;
}
现在完成了,我有一些问题。首先,一旦 CreateMessageLog 函数结束,创建的 MessageLog 对象将超出范围,指针将变为 NULL 对吗?这个问题的解决方案是什么?
顺便说一句,我猜我的 CreateMessageLog 函数不会像我期望的那样做。该问题的解决方案是什么?谢谢。