用户登录
|
用户注册
首 页
┆
商业源码
┆
原创产品
┆
编程论坛
首 页
业内资讯
商业源码
原创产品
编程技巧
数据库开发
信息化
解决方案
WEB研发
Java
.Net
SOA
游戏开发
新闻搜索
软件搜索
动画搜索
热门标签:
500多套商业源码(1)
纯PB开发的仿QQ(1)
150多套大型PB商业源码(1)
PB编程框架(1)
当前位置:
PB创新网
→
文章中心
→
编程技巧
→
Visual C++
.NET工程的自动化编译
减小字体
增大字体
作者:佚名 来源:本站整理 发布时间:2009-03-16 20:37:15
Author:zfive5(zhaozidong)
Email :zfive5@yahoo.com.cn
星期六去了一趟海龙,内存终于升G了,下午回来看了一会儿.NET的msdn帮助,发现DTE,觉得对大团队自动化编译很有利用价值了,就想写点东西出来!
通过这个接口很容易实现VC7的工程编译自动化,什么也不说了, 一切尽在代码中!
MSDN中描述DTE结构的示意图如下:
VC7.1的代码如下:
#pragma warning( disable : 4278 )
//The following #import imports DTE based on its LIBID
#import "libid:80cc9f66-e7d8-4ddd-85b6-d9e6cd0e93e2" version("7.0") lcid("0") raw_interfaces_only named_guids
#pragma warning( default : 4278 )
using namespace EnvDTE; // optional
//……
void Ct3Dlg::OnBnClickedOk()
{
CoInitialize(NULL);
{
_variant_t varRelease=L"Release";
_bstr_t bstrSlnPath=L"C:\\test\\W3\\W3.sln";
try
{
CComPtr
pZFIVE5_DTE;
_Solution *pZFIVE5_S=NULL;
SolutionBuild *pZFIVE5_SB=NULL;
SolutionConfigurations *pZFIVE5_SCs=NULL;
SolutionConfiguration *pZFIVE5_SC=NULL;
pZFIVE5_DTE.CoCreateInstance(L"VisualStudio.DTE.7.1", 0);
pZFIVE5_DTE->get_Solution(&pZFIVE5_S);
if(pZFIVE5_S==NULL)
{
pZFIVE5_DTE->Quit();
goto ZFive5ComRet;
}
pZFIVE5_S->Open(bstrSlnPath);
VARIANT_BOOL var;
pZFIVE5_S->get_IsOpen(&var);
if (var==VARIANT_TRUE)
{
pZFIVE5_S->get_SolutionBuild(&pZFIVE5_SB);
if(pZFIVE5_SB==NULL)
{
pZFIVE5_S->Release();
pZFIVE5_S=NULL;
pZFIVE5_DTE->Quit();
goto ZFive5ComRet;
}
pZFIVE5_SB->get_SolutionConfigurations(&pZFIVE5_SCs);
if(pZFIVE5_SCs==NULL)
{
pZFIVE5_SB->Release();
pZFIVE5_SB=NULL;
pZFIVE5_S->Release();
pZFIVE5_S=NULL;
pZFIVE5_DTE->Quit();
goto ZFive5ComRet;
}
pZFIVE5_SCs->Item(varRelease,&pZFIVE5_SC);
if(pZFIVE5_SC!=NULL)
{
pZFIVE5_SC->Activate();
pZFIVE5_SC->Release();
pZFIVE5_SC=NULL;
}
pZFIVE5_SCs->Release();
pZFIVE5_SCs=NULL;
pZFIVE5_SB->Build(VARIANT_TRUE);
pZFIVE5_SB->Release();
pZFIVE5_SB=NULL;
pZFIVE5_S->Close(0);
}
else
{
AfxMessageBox("打开工程错误!");
}
pZFIVE5_S->Release();
pZFIVE5_S=NULL;
pZFIVE5_DTE->Quit();
}
catch(...)
{
AfxMessageBox("接口调用错误!");
}
}
ZFive5ComRet:
::CoUninitialize();
return;
}
写到这里不能不佩服ms的深谋远虑!!!
除非感到安全,否则人们就不能去迎接变化。
----《最后期限》
的确是一句名言!!!
Tags:
作者:佚名
[
] [
返回上一页
] [
打 印
]
0
好的评价
如果您觉得此文章好,就请您
0%
(
0
)
差的评价
如果您觉得此文章差,就请您
0%
(
0
)
中查找“.NET工程的自动化编译”更多相关内容
中查找“.NET工程的自动化编译”更多相关内容
·上一篇文章:
基于Visual C++6.0工具下的声音文件操作
·下一篇文章:
VC技巧 在程序的状态栏中实现进度条
文章评论
评论内容只代表网友观点,与本站立场无关!
评论摘要(共
0
条,得分
0
分,平均
0
分)
查看完整评论
用户名:
!
查看更多评论
分 值:
100分
85分
70分
55分
40分
25分
10分
1分
内 容:
!
通知管理员
验证码:
点击获取验证码
栏目导航
编程其他
计算机网络
计算机应用
计算机理论
VisualBasic
Delphi
Visual C++
C++ Builder
本类热门阅览
1
虚拟设备驱动程序结构(Vxd教程
2
用VC实现动态改变Windows的显
3
编程高手 实例解析C++/CLI之代
4
用VC实现Windows显示特性的动
5
使用C#开发SmartPhone程序入门
6
理解VC# 2005中的字符串和正规
7
C++启蒙教程之教你编写简单的
8
用Visual C++干干净净地清除进
9
利用Visual C#实现任务栏通知
10
实例解析C++/CLI的串行化
11
用Visual C++设计屏幕抓图程序
12
C++中接口与实现分离的技术
相关文章
›
在C++Builder利用NetBIOS进行编...
›
用CB创建基于Internet的点对点...
›
Internet服务端口测试程序的设...
›
.NET工程的自动化编译
›
.NET 开发
›
.NET新平台编程
›
在Internet传播声音
›
在Internet传播声音(二)
›
解决DELPHI2005调试ASP.NET程序...
›
Delphi8for.NET是什么?
›
在delphi.net的VCL.net里使用A...
›
Delphi8for.net的VCL类库
按字母检索
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
按声母检索
A
B
C
D
E
F
G
H
J
K
L
M
N
O
P
Q
R
S
T
W
X
Y
Z
数字
符号
关于本站
|
网站帮助
|
广告合作
|
下载声明
|
友情连接
|
网站地图
PB创新网
【
ourmis
.com
】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:7,984.37500 毫秒
Email:
ourmis@126.com
QQ:
2322888
蜀ICP备05006790号