感悟自动化编译实现
Author:zfive5(zhaozidong)
Email :zfive5@yahoo.com.cn
vc6也有一个类似.net dte的接口组件(Automation Object Model),周六研究了一个上午,结果还是放弃了用Automation Object Model来实现自动编译的尝试,不是它实现不了这个功能,而是用不好的话,进程列表就一堆msdev.exe (其实vc7.0下也有这个问题)! 而更多的原因采用命令行的话的确编程实现简洁,在加上基本上能做到多种编译器下通用!
vb6.0下使用Automation Object Model的简单代码:
Private Sub ZFIVE5_Click()
Dim oVc6 As New DSSharedObjects.Application
oVc6.Visible = False
oVc6.Documents.Open ("C:/test/VC61/VC61.dsw")
oVc6.Build oVc6.Projects("VC61").Configurations("VC61 - Win32 Release")
oVc6.Quit
Set oVc6 = Nothing
End Sub
VC6命令行下的使用举例:
C:/>msdev C:/test/VC61/VC61.dsp /MAKE "VC61 - win32 Release" /rebuild
Cmd执行结果如图:
接下来只要让用CreateProcess+输出重定位就可以搞定了!
附.NET2003命令行使用:
C:/2003/Common7/IDE>devenv C:/test/ZFIVE5/ZFIVE5/ZFIVE5.csproj /rebuild Release
Microsoft (R) 开发环境 7.10.3077 版。
版权所有(C) Microsoft Corp 1984-2001。保留所有权利。
------ 已启动全部重新生成: 项目: ZFIVE5, 配置: Release .NET ------
正在准备资源...
正在更新引用...
正在执行主编译...
生成完成 -- 0 个错误,0 个警告
正在生成附属程序集...
---------------------- 完成 ---------------------
全部重新生成: 1 已成功, 0 已失败, 0 已跳过