感悟自动化编译实现

感悟自动化编译实现

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执行结果如图:

msdevcmd.JPG

<shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"><stroke joinstyle="miter"></stroke><formulas><f eqn="if lineDrawn pixelLineWidth 0"></f><f eqn="sum @0 1 0"></f><f eqn="sum 0 0 @1"></f><f eqn="prod @2 1 2"></f><f eqn="prod @3 21600 pixelWidth"></f><f eqn="prod @3 21600 pixelHeight"></f><f eqn="sum @0 0 1"></f><f eqn="prod @6 1 2"></f><f eqn="prod @7 21600 pixelWidth"></f><f eqn="sum @8 21600 0"></f><f eqn="prod @7 21600 pixelHeight"></f><f eqn="sum @10 21600 0"></f></formulas><path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"></path><lock aspectratio="t" v:ext="edit"></lock></shapetype><shape id="_x0000_i1025" style="WIDTH: 423pt; HEIGHT: 267.75pt" type="#_x0000_t75"><imagedata src="file:///C:/DOCUME~1/zhaozd/LOCALS~1/Temp/msoclip1/01/clip_image001.png" o:title=""></imagedata></shape>

接下来只要让用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 已跳过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值