📄 compliervcnet.cpp
字号:
// ComplierVCNet.cpp: implementation of the CComplierVCNet class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ComplierVCNet.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
#if _MSC_VER >= 1300
CComplierVCNet::CComplierVCNet(NetVersion version)
{
CString strNETVersion;
if (NET2002 == version) strNETVersion = "VisualStudio.DTE.7.0";
else if (NET2003 == version) strNETVersion = "VisualStudio.DTE.7.1";
else if (NET2005 == version) strNETVersion = "VisualStudio.DTE.8.0";
else ASSERT(FALSE);
if (!strNETVersion.IsEmpty())
{
HRESULT hr = m_pDTE.CreateInstance(strNETVersion);
ASSERT(SUCCEEDED(hr));
}
}
CComplierVCNet::~CComplierVCNet()
{
}
BOOL CComplierVCNet::Build(const CString &strProjectFile,
const CString &strConfigName,
const CString &strOutputFile)
{
_SolutionPtr pSolution;
HRESULT hr = m_pDTE->get_Solution(&pSolution);
hr = pSolution->Open(_bstr_t(strProjectFile.AllocSysString()));
if (FAILED(hr)) return FALSE;
SolutionBuildPtr pSolutionBuild;
hr = pSolution->get_SolutionBuild(&pSolutionBuild);
SolutionConfigurationsPtr pSolutionConfigurations;
hr = pSolutionBuild->get_SolutionConfigurations(&pSolutionConfigurations);
long lCount = 0;
pSolutionConfigurations->get_Count(&lCount);
for (int i = 1; i <= lCount; i++) //Iterator SolutionConfigurations
{
SolutionConfigurationPtr pSolutionConfiguration;
hr = pSolutionConfigurations->Item(CComVariant(i), &pSolutionConfiguration);
// ASSERT(pSolutionConfiguration != NULL);
CComBSTR bstrConfig;
hr = pSolutionConfiguration->get_Name(&bstrConfig);
bstrConfig.ToLower();
if (CString(bstrConfig.Copy()) == strConfigName) //only complier release
{
hr = pSolutionConfiguration->Activate();
hr = pSolutionBuild->Clean(VARIANT_TRUE);
hr = pSolutionBuild->Build(VARIANT_TRUE);
return SUCCEEDED(hr);
}
}
return FALSE;
}
#endif // _MSC_VER > 1000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -