我正在为 Windows Mobile 应用程序编写 CESetup.dll。它必须是无人管理的,我对此几乎没有经验。所以我不确定我是否应该释放我分配的内存以及我如何去做。
这是我写的函数:
Uninstall_Init(
HWND hwndParent,
LPCTSTR pszInstallDir
)
{
LPTSTR folderPath = new TCHAR[256];
_stprintf(folderPath, _T("%s\\cache"), pszInstallDir);
EmptyDirectory(folderPath);
RemoveDirectory(folderPath);
_stprintf(folderPath, _T("%s\\mobileadmin.dat"), pszInstallDir);
DeleteFile(folderPath);
// To continue uninstallation, return codeUNINSTALL_INIT_CONTINUE
// If you want to cancel installation,
// return codeUNINSTALL_INIT_CANCEL
return codeUNINSTALL_INIT_CONTINUE;
}
据我了解,folderPath 是在堆上分配的。EmptyDirectory() 是我自己的函数,用于删除目录中的所有内容。RemoveDirectory() 和 DeleteFile() 是系统调用。
我的问题是我应该folderPath
在函数退出之前解除分配吗?如果我应该,我该怎么做?