项目重命名 - 重命名现有的 Visual Studio 项目
重命名现有 Visual Studio 项目的 MFC 应用程序。

引言
这是一个 MFC 应用程序,用于重命名 Visual C++ 项目。
此应用程序将在所有文件中替换所有出现的“当前项目名称”为“新项目名称”,并重命名所有包含“当前项目名称”的文件名。
此应用程序支持
- VC6 ~ VC9 项目
- 更改项目 GUID
- 允许在重命名过程中取消
- UTF-8 文件,这些文件可能在项目名称为非英语语言时创建
- 显示经过的时间和失败的文件列表
此应用程序是为 Windows XP 开发的,并使用 Windows XP 视觉样式。
在 Windows Vista 上,像 CEdit
这样的控件的边框可能显示不清晰。
用法
- 浏览要重命名的 Visual C++ 项目 (*.dsp *.sln)
- 输入新的项目名称
- 如果您想更改项目 GUID,请选择“项目 GUID 更改”
(如果您不喜欢生成的 GUID,可以更改它) - 单击“重命名”开始处理
Using the Code
该程序是一个基于对话框的应用程序。
它有两个视图,一个是“SelectView”,另一个是“ProgressView”。
BEGIN_MESSAGE_MAP(CProjectRenameDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_DESTROY()
ON_MESSAGE(WMU_SELECT_VIEW_CLOSE, OnSelectViewClose)
ON_MESSAGE(WMU_PROGRESS_VIEW_CLOSE, OnProgressViewClose)
ON_MESSAGE(WMU_RENAME_FINISHED, OnRenameDone)
ON_MESSAGE(WMU_RENAME_CANCELED, OnCancelRename)
END_MESSAGE_MAP()
当用户单击“重命名”开始重命名时,WM_SELECT_VIEW_CLOSE
消息从“SelectView”发送,并创建处理线程。
LRESULT CProjectRenameDlg::OnSelectViewClose(WPARAM wParam, LPARAM lParam)
{
m_pRenameThread = (CRenameThread*)AfxBeginThread
(RUNTIME_CLASS(CRenameThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
m_pRenameThread->m_bCancel = FALSE;
m_pRenameThread->m_pOwner = this;
m_pRenameThread->m_renameOptions = ((CSelectView*)m_pSelectView)->GetRenameOptions();
m_pRenameThread->ResumeThread();
}
当重命名完成时,线程发送 WM_RENANE_FINISHED
消息以通知重命名已完成。
BOOL CRenameThread::InitInstance()
{
ASSERT(!m_renameOptions.strCurrentPath.IsEmpty());
// Make list of files to rename
m_astrFileList.RemoveAll();
PrepareRename(m_renameOptions.strCurrentPath);
m_renameStatus.nTotalFiles = m_astrFileList.GetSize();
m_renameStatus.nCheckedFiles = 0;
m_renameStatus.nRenamedFiles = 0;
m_renameStatus.astrErrorList.RemoveAll();
ProcessRename(m_renameOptions.strCurrentPath);
return FALSE;
}
int CRenameThread::ExitInstance()
{
m_pOwner->PostMessage(WMU_RENAME_FINISHED);
return CWinThread::ExitInstance();
}
历史
- 2009 年 6 月 8 日:发布版本 0.10
- 2009 年 6 月 9 日:版本 0.11 修复了写入 UFT-8 文件时的错误