VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程
VC2005添加mscomm
在你要添加控件的对话框上,单击右键,然后点击“插入Acti v eX控件”;在弹出的对话框中,选择“Microsoft Communications Control,Version 6.0”,然后确定即可VS2005 VC2005 MSCOMM 控件添加方法2010年01月08日星期五 17:50电脑不知什么问题VC6.0装不上了,所以干脆装了个VS2005(只有VC++2005),只是用着不太习惯,最近要编一个串口的小软件,以前用6.0编的,现在用8.0却不知道去哪添加那个ActiveX 控件了,在网上搜了半天,找到了添加方法,发现自己的电脑里就没有那个mscomm.ocx文件,直接下了一个放到C:\Windows\system32下,也不能用,在VS2005内,Tools->ActiveX Control 添加上,说确实license,在msdn上看MSCOMM是在VB下介绍的,了解到是VB的一个组建,于是重新安装VS2005,把VC++2005和VB2005都装上,终于OK。
具体添加方法有很多,1.直接在要添加的对话框上,右键->Insert ActiveX Control,在里面找Microsoft Communications Control, version 6.0,添加完成。
2.在窗口右边Toolbox空白处,右键->Choose Item,在COM Components中,找到Microsoft Communications Control, version 6.0,前面打对勾,OK。
3.在菜单Tools中选择Choose Item Control,后面和2一样。
近来又要做个串口通信的程序,由于以前没有做过,所以不知道怎么写,网上搜了一圈,全是在VC6.0下写的,于是找葫芦画瓢,好不容易总算成功了,只是我这里用的是VC2005,但是VC2005中是没有MSCOMM的,所以我们需要借助VC6.0的MSCOMM控件;首先去网上下载MSCOMM32.OCX,MSCOMM32.DEP,MSCOMM.SRG三个文档,然后把它拷贝到c:\windows\sy stem32目录下面;然后注册控件:在命令行里面敲regsv r32 c:\windows\sy stem32\mscomm32.ocx 回车。
使用 Microsoft Visual C# 2005 Express Edition 编程简介
欢迎来到MSDN > 开发语言和工具使用Microsoft Visual C# 2005 Express Edition 编程简介发布日期:9/9/2004 | 更新日期:9/9/2004Andrew W. TroelsenIntertech Training摘要:本文介绍了如何以使用Microsoft Visual C# 2005 Express Edition 集成开发环境(IDE) 的C# 语言进行编程。
本文通过各种示例项目,为读者介绍了C# 编程语言的几个方面和 .NET 平台的主要概念。
下载Code.msi 示例文件。
注本文假定读者是有兴趣探究使用Visual C# 2005 Express Edition 的C# 语言和 .NET 平台的业余爱好者、学生或有编程思想的个人。
不要求您之前一定接触过C#,但以前的一些编程经验将有所帮助。
适用于:Microsoft Visual C# 2005 Express Edition本页内容什么是Visual C# 2005 Express Edition?Visual C# 2005 Express 的高级功能Visual C# 2005 Express 项目程序集、命名空间和类型从理论到实践:使用外部类型通过C# Express 处理异常通过编程方式处理异常创建C# 类库项目构建Windows 窗体应用程序开始进行编码:Visual C# 2005 Express 起始工具包小结什么是Visual C# 2005 Express Edition?.NET 应用程序可以使用多种方法创建。
顽固的开发人员可以采用突击方法,使用精简的文本编辑器(例如,notepad.exe)和C# 命令行编译器(csc.exe) 来构建 .NET 程序。
虽然 .NET 软件开发工具包(SDK) 可以从Microsoft 站点(/net) 免费下载,但这种方法会带来许多麻烦,因为它在SDK 中不提供代码生成实用工具(向导)、图形调试器和IntelliSense 功能。
vs2005打包及发布
vs2005中如何发布网站及打包web项目生成安装文件环境:VS2005如果想要将完成的网站部署到服务器中,可以使用Microsoft Visual Web Developer Web 开发工具提供的“发布网站”实用工具。
“发布网站”实用工具对网站中的页和代码进行预编译,然后将编译器输出写入指定的文件夹。
然后可以将输出复制到目标Web 服务器,并从目标Web 服务器中运行应用程序。
1.先决条件:需要:Visual Web Developer。
Visual Web Developer 速成版不支持“发布网站”实用工具。
能访问Microsoft Internet 信息服务(IIS),以便可以测试发布网站的结果。
假定您自己的计算机上已经正在运行IIS。
或者可以使用IIS 的任何实例,但需要您拥有为其创建虚拟目录的权限。
2.如果您已经通过完成演练:在Visual Web Developer 中创建基本网页在Visual Web D eveloper 中创建了网站,则可以使用该网站,并转至下一部分。
否则,创建一个新的网站和网页.3.发布网站:现在已经有了网站,可以发布了。
可以将网站发布到本地计算机或网络上您能够访问的任何位置,如果要发布到网络,该网络必须使用Visual Web Developer 支持的连接协议。
复制网站有下面几种方式可选:使用UNC 共享复制到网络上另一台计算机中的一个共享文件夹。
使用FTP 复制到服务器。
使用HTTP 协议复制到支持Microsoft FrontPage 2002 服务器扩展的服务器。
在该演练的此部分中您将把网站发布到本地文件夹。
------>>>>>>>>>发布网站在“生成”菜单上单击“发布网站”。
出现“发布网站”对话框。
在“目标位置”框中输入“c:\CompiledSite”。
警告目标文件夹及其子文件夹中的所有数据都将被删除。
VS 2005 开发简单COM控件,以及调用
Visual Studio 开发简单COM控件,以及调用1开发COM控件下面例子的开发过程是使用VS2005,VS2008类似。
1.1创建COM工程创建COM工程的过程如下:首先,创建COM工程,选择“ATL”的“ATL项目”。
这里的工程名称为“ComTest”。
接着,出现“欢迎使用ATL项目向导”,直接点击“下一步”即可。
然后,出现“应用程序设置”,默认设置即可。
创建工程以后,会自动产生比较多的文件,宝卡的文件如下。
1.2添加对象右键点击“ComTest”工程添加类,如下图所示。
添加“ATL简单对象”即可。
填写类的名称,这里填写的简称为TestObject,这个在后面的应用中,会作为对象的名称。
点击“下一步”。
选择“ATL简单对象”属性,这里可以把“ISupportErrorInfo”和“IObjectWithSite”,在这个测试工程没有使用到。
点击“完成”。
在添加对象“TestObject”之后,工程会自动产生文件“TestObject.h”和“TestObject.cpp”,另外,文件“ComTest.idl”会更改,把TestObject相关的对象信息写入。
1.3添加源代码1.3.1更改TestObject.h这个头文件的源代码如下:// TestObject.h : CTestObject 的声明#pragma once#include"resource.h"// 主符号#include"atlctl.h"#include"ComTest.h"#if defined(_WIN32_WCE) && !defined(_CE_DCOM)&& !defined(_CE_ALLOW_SINGLE_THREADED_OBJECTS_IN_MTA)#error "Windows CE 平台(如不提供完全DCOM 支持的Windows Mobile 平台)上无法正确支持单线程COM 对象。
Visual_Studio_2005教程(MFC)
Visual C++ 2005教程目录第一章:Windows程序开发简介 (2)DOS中用户使用软件的方式 (2)Windows中用户使用软件的方式 (3)Windows中程序运行的机制 (4)第二章:Windows编程初步 (6)第一个程序 (6)查看系统库函数的帮助说明 (19)设置控件的属性 (20)完成的程序 (24)输入数据的控件 (26)第三章:Windows编程进阶 (33)列表框控件 (34)单选框控件 (36)组合框控件 (37)复选框控件 (40)列表框控件 (44)图片控件 (48)更多的功能 (49)完整的示例代码 (50)第四章:Windows图形编程 (61)创建菜单 (61)创建工具条 (67)绘制图形 (74)第五章:数据库编程 (80)数据库简介 (80)数据库的建立 (80)ODBC数据源的设置方法 (86)数据库的访问方法 (91)一个实际的例子 (95)第六章:线程机制 (114)线程的概念 (114)线程的状态 (114)线程的优先级 (115)线程的创建和管理 (116)一个演示示例 (117)前台线程和后台线程 (119)线程优先级 (120)挂起线程和恢复线程 (121)终止线程 (121)时钟线程 (122)第七章:网络编程 (123)TCP/IP协议原理介绍 (123)Internet概述 (123)TCP/IP协议 (124)网络应用程序的运行模式 (127).NetFrameWork中的Socket类库 (128)访问网页 (132)一个聊天程序 (132)第一章Windows程序开发简介开发运行在Windows操作系统中的软件需要掌握关于Windows系统下编程的技术,现在业界有多种成熟的Windows开发技术,在本书中,将介绍使用.Net Framework来开发Windows 软件。
那什么是.Net Framework呢?简单的说.Net Framework就是一个C++的类库,专门用来简化Windows程序设计的。
从ocx控件编写到发布到网上全过程
VC6.0从开发activex ocx控件到发布到网上全过程(sunxiaopeng)ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。
控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。
一:vc创建activex控件创建一个activex控件,名称为:test.ocx,创建步骤略。
显示结果如下:为该控件增加一个方法void GetStr(LPCTSTR str),该方法内部代码如下:这样,GetStr方法就被加入了。
onDraw函数下代码如下下面,测试该方法,鼠标右键控件,选择Invoke Methods,弹出如下对话框:在parameter中输入hello,单击Invoke按钮,显示如下:那么如何在网页中将参数传递给控件,让其在网页中显示出来呢??稍后介绍把test.ocx控件放入c:\ceshi目录下,到网上下载Makecert.exe,Cert2Spc.exe,Signcode.exe,并一同放入c:\ceshi目录下二:ActiveX打包与发布1)用到的工具如下所示:1.Makecert.exe ---证书创建工具2.Cert2Spc.exe ---发行者证书测试工具3.Signcode.exe ---文件签名工具2)ActiveX发布步骤打包activeX需要制作证书,具体用到makecert 、cert2spc 、signtool这三个工具,另外需要:digsig.dll和signer.dll。
现在我们将以上工具和.ocx控件放到同一个目录c:\test下.(1)单击"开始"-->"运行(R)"-->输入"cmd"-->回车-->进入到操作的控件所在的目录(需要将上面所说的工具,和ocx控件放到一个文件夹下);(2)创建inf文件,代码如下[version]signature="$CHICAGO$"AdvancedINF=2.0[Add.Code]test.ocx=test.ocx[test.ocx]file-win32-x86=thiscabRegisterServer=yesclsid={B649E664-D7CF-4481-A58E-AC8B4440794A}DestDir=11FileVersion=1,0,0,1上述代码解释如下:file-win32-x86=thiscab//告诉ie到哪里去得到这个dll,file一共包括三个部分,第一部分是file,这个永远都是这样的(至少目前来说);第二部分告诉声明支持的OS,win32表示windows,mac 就是苹果MAC OX了;第三部分是CPU类型,比如说x86、 ppc (Power PC)、 mips 或者alpha了。
使用MFC开发ActiveX控件
使用MFC开发ActiveX控件MFC(Microsoft Foundation Classes)是一套用于开发Windows应用程序的C++类库,它提供了一组封装了Windows API的类和函数,可以方便地开发Windows桌面应用程序。
ActiveX(ocx)控件是一种可重用的组件,可以嵌入到其他应用程序中使用,可以在网页上嵌入,也可以在Visual Studio等开发环境中使用。
下面将介绍如何使用MFC开发ActiveX控件。
然后,根据自己的需求,在OnDraw函数中绘制控件的外观。
可以使用GDI+函数绘制各种形状、文字、图像等。
可以通过设置控件属性,比如颜色、大小、透明度等来改变控件的外观。
接下来,处理控件的消息和事件。
通过重写控件类的成员函数,比如OnLButtonDown、OnKeyDown等,可以处理鼠标和键盘的输入事件。
可以在函数中编写相应的逻辑代码,比如响应鼠标点击事件时弹出一个对话框。
在控件类中,可以添加成员变量和成员函数,用于保存控件的状态和实现控件的功能。
可以在控件的Load函数中初始化控件,可以在DoPropExchange函数中保存控件的属性,可以在Serialize函数中保存控件的状态。
最后,编译项目,生成ActiveX控件的.dll文件。
可以在同一解决方案的其他项目中引用这个控件,通过拖拽控件到窗口上的方式将其嵌入到应用程序中使用。
总结起来,使用MFC开发ActiveX控件主要有以下几个步骤:创建MFC应用程序项目,设计控件的外观,处理控件的消息和事件,实现控件的功能,编译项目,生成ActiveX控件的.dll文件。
通过这些步骤,可以方便地开发自己的ActiveX控件,并在其他应用程序中使用。
vs2005下安装部署vc(MFC)程序(工程)必读
方法一:该打包过程在vs2005中完成,但也适用于vs2008,程序是用c#写的。
1.新建安装和部署。
打开你所写的项目,在解决方案上右键->添加->新建项目。
如图:选择其他项目类型->安装和部署->安装项目。
在名称中把名字改为你所希望的名字,然后确定。
如图:2.确定后打开文件系统,然后单击应用程序文件夹,在右边空白处右键->添加->项目输出。
如图:3.选择主输出,然后确定。
这时文件系统中的应用程序文件夹如图:4.在刚添加的主输出上右键,创建其快捷方式。
可以重命名也可不重命名。
这里命名为PicSee。
如图:5.剪切刚创建的快捷方式,然后单击用户的程序菜单,在其上右键,添加,文件夹,重命名文件夹。
这个文件夹名字就是你在开始,所有程序中显示的名字。
然后单击刚创建的文件夹,在右边空白处粘贴快捷方式,安装好程序后,这个快捷方式会出现在所有程序中。
如图:6.像上面一样再创建一个快捷方式,剪切,然后单击用户桌面,粘贴。
安装完程序后,这个快捷方式出现在桌面。
如图:7.右击左边的"应用程序文件夹"打开属性对话框:将属性中的"defaultlocation"的路径中的"[manufacturer]"去掉,不然的话做好的安装程序默认安装目录会是"c:\programm file\你的用户名\安装解决方案名称"。
8.右键你的安装项目名,属性。
如图:在打开的属性页中,选择"系统必备",在打开的系统必备页中,选中如下图中的选择项,选上以后,在生成的安装文件包中包含.netframework组件,然后确定。
9.改变桌面和开始->所有程序中该程序的默认图标。
在应用程序文件夹右边空白处,右键->添加->文件,添加一个ico文件。
如图:打开用户的程序菜单->PicSee,在右边的快捷方式上右键,属性窗口。
VS2005安装与使用
目录VS2005安装与使用 (1)C#语言入门及基础 (2)类与对象 (16)面象对象高级应用 (19)数组 (24)调试与异常处理 (28)委托与事件 (29)基于Windows的应用程序 (30)基于Web的应用程序 (31)VS2005安装与使用Visual Studio 是开发C#程序的_ _ ____。
在代码编写过程中,Visual Studio 2005提供了一种由集成开发环境提供的即时自动提示功能,叫_ _。
Visual Studio 2005中的每一个对象都有自己的特征集,用来唯一地标识它自己,这个特征集叫做_ _。
Visual Studio 2005的窗口包含共同构成C# 应用程序的一个或多个项目。
当鼠标指针在IDE工具栏的按钮上方停留几秒钟后,会显示_____a)工具箱b)工具栏c) 菜单d) 工具提示工具栏按钮上的图片称为_____a)原型b)图标c) 工具提示d) 选项卡______提供项目及其文件的有组织的视图a)解决方案资源管理器b)属性窗口c)类视图d)工具箱_____用于显示正在开发的应用程序中定义、引用或调用的符号a)服务器资源理器b) 工具箱c) 解决方案资源管理器d) 类视图_____用于查看和更改位于编辑器和设计器中的选定对象的设计时属性及事件a)工具箱b)属性窗口c) 服务器资源理器d) 解决方案资源管理器绘制GUI的时候,界面中的元素都可以从______中拖拽过来的a) 属性窗口b) 服务器资源理器c) 解决方案资源管理器d) 工具箱与用户进行交互的应用程序的可视化部分是______。
a)图形化用户界面b) 项目c)解决方案d)标题栏以下哪些工具可以用来查看写前项目中的文件列表( )A.类视图B.起始页C.解决方案资源管理器D.工具箱计算机软件是指令数据和什么的集合?AA、文档B、代码C、逻辑D、程序在“工具”菜单中选择“选项”命令可以更改启动VS默认出现的用户界面,请问以下哪些是Visual Studio支持的启动界面?A、最后一次加载的项目B、打开起始页C、空环境不打开任何界面D、打开主页.NET Framework环境除了支持和C#两种编辑语言,还支持Perl, C++.net,,ActionScript.A、正确B、错误Visual Studio控件的属性窗口中,按钮“A—>Z”点击后,属性列表会按照什么顺序进行排列?[单选]()A.按照功能分类排列属性B.按照大小排列各属性C.按照名称排列属性在开发Visual Studio项目时,解决方案及各个项目通常默认会以哪个版本的方式生成优化并测试( )A、DebugB、ReleaseC、配置管理器当鼠标指针移出工具箱选项卡区域时,_ _会隐藏工具箱。
VB开发、打包、发布ActiveX控件
VB开发、打包、发布ActiveX控件VB开发ActiveX控件步骤:1、创建一个ActiveX Control的项目2、绘制ActiveX控件的操作界面,并且编写代码3、特别注意:在项目的属性上的Make页,有一个Version Number区域,需要你写当前控件的版本号,这个地方和自动下载有密切关系!当你远端的Web浏览器检查到本机的控件版本号和服务器上不一样的时候,浏览器就会自动从服务器下载新版本控件进行安装,所以你编译的新版本控件一定要改版本号!否则可能导致远程无法更新。
4、编译ActiveX控件ActiveX控件打包步骤:本例子以Studio 6.0自带的打包工具为例。
1、选择当前选用的VB ActiveX项目进行打包。
2、其中在选择Package Type的时候有3个选项:1)Standard setup package2)Internet Package3)Dependency File选择第二个!3、到选择File Source的时候有3个选项:1)Include in this cab2)download from microsoft web site3)download from alternate web site以上选项是针对程序包含的每一个相关dll,ocx的,所以,如果你要修改参数,需要一个个文件设置!我建议是都选择第一项!因为有些控件从外部更新,可能会遇见证书之类的问题,可能导致你的程序无法使用,因此,全部使用本地的是最省心的选择!打包过程的其他步骤,没有特别说明的,全部用默认设置!4、在发布控件的网站根目录下建一个目录,就叫ActiveX吧,把打包装后的Package目录中的所有文件复制到ActiveX目录。
5、打包完成后修改测试例子htm文件:打包完成后,工具会自动产生一个和项目名称一样的htm文件,里面代码如下:<HTML><HEAD><TITLE>WebActiveX.CAB</TITLE></HEAD><BODY><!--If any of the controls on this page require licensing, you must create a license package file. Run LPK_TOOL.EXE to create the required LPK file. LPK_TOOL.EXE can be found on the ActiveX SDK,/intdev/sdk/sdk.htm. If you have the VisualBasic 6.0 CD, it can also be found in the \Tools\LPK_TOOL directory.The following is an example of the Object tag:<OBJECT CLASSID="clsid:5220cb21-c88d-11cf-b347-00aa00a28331"><PARAM NAME="LPKPath" VALUE="LPKfilename.LPK"></OBJECT>--><OBJECTID="ActiveXDrive"CLASSID="CLSID:F68EC215-0F14-416F-B680-FF8C772A0B47"CODEBASE="WebActiveX.CAB#version=1,1,0,0"></OBJECT></BODY></HTML>注意,应将红色部分修改为:CODEBASE="http://130.50.26.221/ActiveX/WebActiveX. CAB#version=1,1,0,0">客户端IE设置:1、打开IE->Internet 选项->安全->internet,把安全级设置为低!要注意“自定级别”里面,有没有对ActiveX的限制,要是有全放开!2、要是安装有防火墙软件的,要注意这些软件对http访问有没有限制,要是有全放开!最后一步:嘿嘿,在另一台电脑上访问发布ActiveX控件的服务器。
在VC2005下实现具备MFC的COM组件
在VC2005下实现具备MFC的COM组件前言许多同志学习了COM以后,并不会用于实际。
学习了DLL也只能当一个“lib”来用,如果DLL不用于组件,那其作用也是可有可无。
本文针对COM和DLL的应用,产生一个综合的例子平台,在VC2005实现。
本文参照考《COM技术内幕(Dale Regerson)》,《COM本质论(侯捷译)》等完成,因此,希望读者首先读一下此类书籍,再看本文。
1组件所驻留的DLL建立1.1建立自已的组件工程,命名为NewCom点击完成。
此处建立了一个扩展MFC的DLL,目的是将MFC的可视技术用在组件内。
1.2改造Dll程序,去掉若干宏定义。
将红框内宏代码删除。
最后所剩下的代码为:此时,系统内可修改的文件总共为:Resource.h, stdafx.h, newcom.cpp, newcom.def, stdafx.cpp,以下将一步步将它们改造成COM组件的程序。
2 接口InterFace.h 的建立过程2.1目标说明:1.假如我们希望建立一个名叫CA 的组件,其内部有两个接口IX 和IY 。
2.假如IX 和IY 分别代表两个窗口,如何实现呢?2.2首先建立IX 和IY将IX 和IY 建立在同一个文件中,这里命名为Interface.h注解1:绿色框中的GUID 号是从vc2500的工具项里产生,可以按照下图步骤产生和粘贴即可。
GUID 将在后文中还要用到。
注解2:红色框中virtual IUnknown* __stdcall Queryitself1()=0; //接口指针查询函数IX:virtual void__stdcall DefineWindow_Com1(HWND hparent)=0;virtual void__stdcall ShowWndBackground_Com1(COLORREF bgcolor)=0;是用户定义的函数,因为要用到HWND,所以包含文件中加入,winnt.hIY:virtual int__stdcall Add( int data1,int data2)=0;是用户定义的函数.建立3 组件组件建立上文说到建立了两个接口,下面要实现一个叫CA的组件。
VS2005下MFC开发的ActiveX控件的部分总结 inf 篇
VS2005下MFC开发的ActiveX控件的部分总结inf 篇虽然微软对ActiveX越来越不信任,但是这个技术还是很多人喜欢用的,这个博客的编辑器貌似就用到了ActiveX。
在我们编写好ocx控件后只有在打包成CAB文件加入数字签名后才能正常发布,如果你用的是vc6,那么问题简单了,打包完成后不用考虑控件的运行库问题,现在的XP系统和将要淘汰的2kpro都已经有了这样的运行库。
但是如果使用的是.net2005就会遇到有关运行库的问题,这些问题只能依靠CAB压缩包中的安装文件 .inf来解决。
首先看看基本的inf文件格式[version];区域设置signature="$CHICAGO$"AdvancedINF=2.0[Add.Code];该项会指明该安装包中有哪些项,这里说明包中有ActiveX.ocx、msvcr80.dll、m fc80u.dll、msvcp80.dll 四个项;这里一般会使用文件名和项名相同的方法,主要是便于维护ActiveX.ocx=ActiveX.ocxmsvcr80.dll=msvcr80.dllmfc80u.dll=mfc80u.dllmsvcp80.dll=msvcp80.dll[ActiveX.ocx];这就是Activex控件文件了file-win32-x86=thiscab;表示所需要的这个文件就在当前的安装包中,file-win32-x86表示该文件是一个win32系统下的文件clsid={A3B4C60F-24A7-40E8-A06B-1A5EFE5F0A43};这里是这个安装包的GUID这个值是在创建项目的时候系统生成在,一般存放在以项目名命名的idl文件中,使用项目的类信息的GUIDRegisterServer=yes;说明这个控件是需要注册的,;一般情况下只有编写的文件是需要注册的,运行库文件和系统中可能存在的DLL 文件是不用注册的,如MFC70.dll等FileVersion=1,0,0,1;这个文件的版本,注意要用逗号隔开[msvcr80.dll];这是ocx控件的第一个依赖文件,有的地方说明依赖文件必须按照依赖顺序安装,可以用"所剩dll都依赖的文件最先安装”的规则来进行,但是我并没有在MSDN上看到什么地方有很明确的说明,并且在我自己的测试中也没有发现有关顺序的问题,并且很多地方都是将ocx控件写在最前面的,但是ocx文件是最依赖其他文件的,貌似按顺序写的做法有点“迷信”FileVersion=8,00,50727,42;这里是该dll文件的版本,这里注意下,这个版本可以在文件属性的版本选项卡中看到,不知道为什么这里显示的版本号有时会比最外面显示的版本号多一个0,注意,复制到inf文件后要将点分隔符改成逗号分隔符hook=mfc80installer;这个hook是个保留字,说明该项目被挂接到哪里,如果有则表示被挂接到目标项,hook不是一个必填项,这里表示该文件将被挂接到mfc80installer项[mfc80u.dll]FileVersion=8,00,50727,42hook=mfc80installer[msvcp80.dll]FileVersion=8,00,50727,42hook=mfc80installer;上面两项都跟[msvcr80.dll]一样,这里就不解释了[mfc80installer];挂接项file-win32-x86=http://192.168.1.117/helloactivex/mfc80.cab;这里表示这个被挂接的文件的位置在一个地址run=%EXTRACT_DIR%vcredist_x86.exe;这里表示从这个地址下载到cab包后执行包里面的vcredist_x86.exe文件,%EX TRACT_DIR%表示下载后的解压目录上面有一点没有说明白,就是“为什么会出现hook这个东西?”,很多的inf文件是这样写的[Add.Code]msvcr80.dll=msvcr80.dllmfc80u.dll=mfc80u.dllmsvcp80.dll=msvcp80.dllActiveX.ocx=ActiveX.ocx[msvcr80.dll]file-win32-x86=thiscab;该文件在当前安装包中FileVersion=8,00,50727,42RegisterServer=no;不需要注册destdir=11;该文件将被安装到系统所在目录的system32下;........我使用这样的方法在没有安装过任何软件的2kpro和XP下测试过,均安装失败,其原因就是运行库不匹配,如果你的控件是用VS2005的MFC开发的话,使用这样的方法无法将msvcr80.dll,mfc80u.dll,msvcp80.dll这几个控件依赖的文件安装到目标位置的,具体是什么原因我也不明白。
Microsoft Visual Studio 2005编写C程序教程
Microsoft Visual Studio 2005 编写C程序教程1.本机器安装了自动提示补全插件,刚开始学C基础的请在使用时候记住这些后缀名为.h的文件,方便以后没有辅助软件时能够写下来2.使用本IDE(集成开发环境)编写C程序步骤安装完在开始-所有程序里面可以看到此目录(XP类同)点击Microsoft Visual Studio 2005 鼠标所指点击可以启动IDE工具启动后画面新建空工程File—New project(新建工程画面)在Name 文本框输入工程名字HelloWold (也可以是其他)然后点击OK按钮出现以后画面点击Next这里Application type: 选项保持默认,Additional options选项选择Empty project (空的项目)点击Finish 完成这是项目里面的各个文件夹都是空的选中工程名右击选择add ---new Item然后弹出下面这个画面选择C++ File(.cpp) 然后在下面Name 输入HelloWord.c 单击add按钮完成这是刚才建立的文件时空文件我们就要把C语言代码写进去按F5可以出现DOS的输出窗口代码解说:#include"stdio.h" 这个意思是包含标准输入输出头文件只需要知道计算机需要有输入和输出通道void main(){}这个是所有程序的入口也是固定的结构,其他语言写法有所不一样,基本上都有这样main(){}方法它是计算机所有程序的入口printf(“hello word”); 这是C语言输出语句就是在DOS 窗口输出 printf() 方法里面的英文字符在计算机里面没有字母、汉字感念或者说法,里面一律叫做字符或者字符串。
单个字母叫字符,一串字母或者汉字叫做字符串。
需要注意{}里面语句每句都需要加上“;”表示结束输出结果图C程序变量必须先声明再使用如声明一个整型变量int a; int char 等这些都是C语言基本数据类型需要记住a=10; 给a 赋值为10trubo c 是DOS下编写和调试C程序,当前3.0版本不知道是否支持汉字。
使用C#.net创建ActiveX(初级)
使用C#.net创建ActiveX(初级)使用VS2005开发软件1.创建类库项目New Project(CsPrinter_Develop) -> Visual C# -> Class Library(CsPrinter)2.创建用户控件(CsPrinter)3.在用户控件中添加一个button4.添加并且实现IObjectSafety接口4.1添加[ComImport][GuidAttribute("CB5BDC81-93C1-11CF-8F20-00805F2CD064")][InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]public interface IObjectSafety{[PreserveSig]int GetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [Marsha lAs(UnmanagedType.U4)] ref int pdwEnabledOptions);[PreserveSig()]int SetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] int dwOptionSetMask, [MarshalAs(Un managedType.U4)] int dwEnabledOptions);}4.2实现接口using System;using System.Collections.Generic;using ponentModel;using System.Drawing;using System.Data;using System.Text;using System.Windows.Forms;using System.Runtime.InteropServices;namespace CsPrinter{[Guid("e9eaa9e5-3d7b-43ba-826f-68bdd716c518")][ProgId("CsPrinter.CsPrinter")][ComVisible(true)]public partial class CsPrinter : UserControl, IObjectSafety{#region IObjectSafety Memberspublic int GetInterfaceSafetyOptions(ref Guid riid, ref int pdwSupportedOptions, ref int pdwEnabledOptions) {pdwSupportedOptions = 1;pdwEnabledOptions = 2;return 0;}public int SetInterfaceSafetyOptions(ref Guid riid, int dwOptionSetMask, int dwEnabledOptions){return 0;}#endregion endpublic CsPrinter(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){}}[ComImport][GuidAttribute("CB5BDC81-93C1-11CF-8F20-00805F2CD064")][InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]public interface IObjectSafety{[PreserveSig]int GetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] ref int pdwSupportedOptions, [Marsha lAs(UnmanagedType.U4)] ref int pdwEnabledOptions);[PreserveSig()]int SetInterfaceSafetyOptions(ref Guid riid, [MarshalAs(UnmanagedType.U4)] int dwOptionSetMask, [MarshalAs(Un managedType.U4)] int dwEnabledOptions);}}4.3Create GUID(e9eaa9e5-3d7b-43ba-826f-68bdd716c518)图片上的Result应该是上面的GUID,同时,该GUID不能与项目的GUID相同5.创建安装项目(SetUp)6.添加ActiveX项目到项目的主输出:7.设置此主输出的Register属性为vsdrpCOM(这个没设置,则将无法实现控件)8.然后对两个项分别build一下:8.1 build CsPrinter类库,可以看到以下成功信息8.2 build SetUp项,成功显示以下信息,然后打开指定文件,点击安装包,进行安装8.3点击安装文件进行安装8.4安装成功后,你可以在程序安装中看到:9.在IIS项目下,创建一个html文件html文件内容如下:(这里的classid是上面获取的的GUID)<html><head></head><body><object id="xxxx" width="200" height="200" classid="clsid:e9eaa9e5-3d7b-43ba-826f-68bdd716c518" ></object></body></html>10.然后在IE上输入地址http://localhost/test/test.html,则会看到ActiveX功能实现。
VS2005开发ActiveX控件
C#开发ActiveX控件,.NET开发OCX控件案例讲下什么是ActiveX控件,到底有什么作用?在网页中又如何使用OCX控件,如QQ邮箱的大文件上传应该就是使用OCX控件的,下面开始吧。
0. 前言ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。
使用ActiveX插件,可以轻松方便的在Web页中插入多媒体效果、交互式对象以及复杂程序等等。
通常使用C++或VB开发ActiveX控件,本文探讨一下在Visual Studio 2005环境中使用C#开发ActiveX控件的技术实现。
1. 问题场景在C/S架构的系统中,客户端要实现某些业务功能,可以通过安装相关的应用程序集来方便的实现。
同样的需求,在B/S架构的系统里实现起来却比较困难。
因为所有的程序都放在服务器端,客户端只是采用浏览器,通过HTTP协议来访问服务器端。
比较成熟的解决办法是开发ActiveX控件安装到客户端,这样客户端的浏览器就可以访问本地的ActiveX控件来执行相关的本地操作。
本文将要谈论的,就是使用C#开发一个ActiveX控件实现读取并显示客户端的系统时间。
2. 开发环境Windows XPVisual Studio 2005.NET Framework 2.0(C#)3. 实现过程3.1.ActiveX控件开发在Visual Studio 2005开发环境中,可以使用Windows控件库项目实现ActiveX控件的开发,但是需要对项目做一些必要的设置。
下面就来看看如何使用Windows控件库项目开发一个ActiveX控件。
首先创建一个应用程序解决方案,并添加一个Windows控件库项目:更改“项目属性-应用程序-程序集信息”设置,勾选“使程序集COM 可见”:更改“项目属性-生成”设置,勾选“为COM Interop 注册”(注意,此处如果实在debug 状态下修改的,那在调到release状态下还需要再设置一次):修改AssemblyInfo.cs文件,添加[assembly: AllowPartiallyTrustedCallers()]项(需要引用System.Security名称空间):using System.Reflection;using pilerServices;using System.Runtime.InteropServices;using System.Security;[assembly: AssemblyTitle("Yilin.Preresearch.CSharpActiveX")][assembly: AssemblyDescription("")][assembly: AssemblyConfiguration("")][assembly: AssemblyCompany("10BAR")][assembly: AssemblyProduct("Yilin.Preresearch.CSharpActiveX")][assembly: AssemblyCopyright("Copyright © 10BAR 2009")][assembly: AssemblyTrademark("")][assembly: AssemblyCulture("")][assembly: AllowPartiallyTrustedCallers()][assembly: ComVisible(true)][assembly: Guid("114d1f0c-43b8-40ac-ae7c-5adccc19aef3")][assembly: AssemblyVersion("1.0.0.0")][assembly: AssemblyFileVersion("1.0.0.0")]添加一个Windows用户控件:按照开发Windows用户控件一样的思路完成该控件的开发,本例中主要实现了两个业务功能,一个是提供一个公共方法,用于读取USBKey中保存的签名证书,保存到本地C 盘根目录下,并返回操作信息;另一个业务功能提供UI界面,包括一个Button控件和一个Label控件,Button控件的Click事件调用前面提供的那个方法,并将返回信息显示到Label 控件上。
VC2005开发MFC ActiveX控件基础教程
VC2005开发MFC ActiveX控件基础教程一.创建MFC ActiveX项目1.打开VS2005新建MFC项目。
这里我们取名为“ActiveXDemo”。
2.输入项目名称为“ActiveXDemo”和项目位置。
点击“确定”按钮,打开向导对话框。
3.选择“控件设置”选项卡,具体设置可参考上图。
其它选项卡为默认设置。
最后点击“完成”按钮保存设置。
二.添加控件方法VC2005会为我们自动创建好MFC ActiveX程序框架,我们只要给该ActiveX控件添加方法即可。
现在我们给控件添加一个“AddFun”方法,这个方法是将两个数相加并返回结果。
1.点击“视图”,打开“类视图”窗口。
2.展开“ActiveXDemoLib”项,选中“_DActiveXDemo”项。
点击鼠标右键,选择“添加”下的“添加方法”。
3.打开添加方法向导窗口。
因为我们是添加一个加法方法,所以我们设置的返回类型为LONG型,方法名设为AddFun,添加两个LONG类型参数Add1,Add2。
4.其它为默认设置,点击“完成”按钮完成添加方法。
接下来我们打开“解决方案资源管理器”打开“ActiveXDemoCtrl.cpp”文件。
5.打开代码视图,我们会发现VC2005已经为我们添加了一个“AddFun”方法,我们在方法内添加“returnAdd1 + Add2;”语句。
6.最后生成项目。
三.测试ActiveX控件经过上面操作我们已经生成了OCX控件文件。
接下来的步骤就是要将这个OCX控件嵌入在Html 页面中,通过Javascript来调用控件方法来测试我们的OCX控件是否能正常运行。
1.我们用“EditPlus”新建一个Html文件,具体内容如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.or g/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>ActiveX测试</title><script language = 'javascript'>function AddFun(){var iResult = MYAvtiveX.AddFun(12, 11);//调用ActiveX控件的AddFun方法。
VS2005所有控件介绍
VS2005 Windows Form Controls2008年03月03日星期一上午 11:29BackgroundWorker 组件使窗体或控件能够异步运行操作。
BindingNavigator控件(Windows 窗体)为绑定到数据的控件提供导航和操作用户界面 (UI)。
BindingSource组件封装数据源以绑定到控件。
Button 控件(Windows 窗体)显示用户可以单击以执行操作的标准按钮。
CheckBox 控件(Windows 窗体)指示条件是打开还是关闭。
CheckedListBox 控件(Windows 窗体)显示项的列表,每个项旁边都有一个复选框。
ColorDialog 组件(Windows 窗体)允许用户在预先配置的对话框中从调色板选择颜色以及将自定义颜色添加到该调色板。
ComboBox 控件(Windows 窗体)在下拉式组合框中显示数据。
ContextMenu 组件(Windows 窗体)向用户提供易于访问的菜单,该菜单包含与选定对象关联的常用命令。
尽管ContextMenuStrip 替换了早期版本的 ContextMenu 控件中的功能并添加了其他功能,但如果需要,可以保留 ContextMenu 以备向后兼容和将来使用。
ContextMenuStrip 控件表示快捷菜单。
尽管 ContextMenuStrip 替换了早期版本的 ContextMenu 控件中的功能并添加了其他功能,但如果需要,可以保留 ContextMenu 以备向后兼容和将来使用。
DataGrid 控件(Windows 窗体)显示数据集中的表格数据,并允许对数据源进行更新。
DataGridView 控件(Windows 窗体)为显示和编辑表格数据提供了灵活、可扩展的系统。
DateTimePicker 控件(Windows 窗体)允许用户从日期或时间列表中选择单个项。
对话框控件和组件(Windows 窗体)描述一组控件,这些控件允许用户执行与应用程序或系统的标准交互操作。
MFC开发ActiveX控件全过程
使用MFC开发ActiveX控件全过程Visual C++是开发ActiveX控件的强大工具,它的特点是开发周期短、便于使用,因此它已经成为开发ActiveX控件的主要工具之一。
Visual C++集成开发环境,使用了微软自己的类库MFC,MFC对开发Ac tiveX控件提供了全面的支持,本文讲述的过程均在Visual C++ 6.0(以下简称VC)中实现。
1、创建工程:对于使用过VC的人,可以很容易地创建一个开发ActiveX控件的工程,没有使用过VC的人,按照下面的操作步骤,也可以很快创建一个同样的工程出来。
第一步:“File”—>“New”—>“(Projects)MFC ActiveX ControlWizard”,在“Project Name”中输入合适的工程名(以test为例),在“Location”中选择工程文件存放路径,然后,“OK”进入下一步;第二步:选择你想在这个工程中生成的ActiveX控件的个数(至少一个),其余选项决定是否生成一些辅助文件,通常按照默认设置即可,“Next”进入下一步;第三步:编辑你的工程中各个类和文件的名称,配置一些辅助选项,可以全部选择默认设置,“Fini sh”进入下一步;第四步:展示向导为你的工程生成的各种配置信息,“Cancel”重新设置不满意的选项,“OK”结束工程的创建。
2、绘制控件:MFC将对ActiveX控件的支持封装在COleControl类中,所有ActiveX控件均从这个类派生。
绘制控件的全部操作则集中在一个虚函数中—OnDraw(),其默认实现如下:void CTestCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid){// TODO: Replace the following code with your own drawing code.pdc->FillRect(rcBounds,CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));pdc->Ellipse(rcBounds);}可以看到,OnDraw()函数的默认实现是在矩形rcBounds中绘制一个椭圆,通过改写OnDraw()函数中的内容,就可以绘制自己想要的控件了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC2005从开发MFC ActiveX ocx控件到发布到.net网站的全部过程开篇语:最近在弄ocx控件发布到网站上使用,就是用户在使用过程中,自动下载安装ocx控件。
(此文章也是总结了网上好多人写的文章,我只是汇总一下,加上部分自己的东西,在这里感谢所有在网上发表相关内容的朋友们。
)ActiveX控件用于Web的过程是将控件嵌入主页中,用户通过浏览器访问该主页时,将主页中的控件下载,并在用户机器上注册,以后就可在用户的浏览器上运行。
控件下载一次后就驻留在用户本地机器上,下次再访问相同的主页时,可不再下载该控件,而是直接运行用户本地的控件。
这里控件容器就是浏览器,用户不需要通过浏览器调用控件的属性或方法。
因此,开发面向Web 的ActiveX控件比开发桌面的控件还要简单些,所复杂的是如何将该控件很好地嵌入主页,使用户能正常浏览。
下面介绍这个问题。
一.创建MFC ActiveX项目1.打开VS2005新建MFC项目。
这里我们取名为“ActiveXDemo”。
2.输入项目名称为“ActiveXDemo”和项目位置。
点击“确定”按钮,打开向导对话框。
WoSign 免费提供的时间戳服务URL:/timestamp 时间戳服务非常重要,添加时间戳后,即使您的代码签名证书已经过期,但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信,最终用户仍然可以放心下载,使得即使代码签名证书已经过期,您也无需重签和重新发布已经签名的代码。
3.选择“控件设置”选项卡,具体设置可参考上图。
其它选项卡为默认设置。
最后点击“完成”按钮保存设置。
二.添加控件方法VC2005会为我们自动创建好MFC ActiveX程序框架,我们只要给该ActiveX控件添加方法即可。
现在我们给控件添加一个“AddFun”方法,这个方法是将两个数相加并返回结果。
1.点击“视图”,打开“类视图”窗口。
2.展开“ActiveXDemoLib”项,选中“_DActiveXDemo”项。
点击鼠标右键,选择“添加”下的“添加方法”。
3.打开添加方法向导窗口。
因为我们是添加一个加法方法,所以我们设置的返回类型为LONG 型,方法名设为AddFun,添加两个LONG类型参数Add1,Add2。
4.其它为默认设置,点击“完成”按钮完成添加方法。
接下来我们打开“解决方案资源管理器”打开“ActiveXDemoCtrl.cpp”文件。
5.打开代码视图,我们会发现VC2005已经为我们添加了一个“AddFun”方法,我们在方法内添加“return Add1 + Add2;”语句。
三、MFC Activex 安全问题:1、在默认环境下,编译的MFC Activex控件,只能在本地代码中运行,即在http://localhost/xxx/xxx.htm中执行,而在http://127.0.0.1/xxx/xxx.htm中提示无相关属性,需要设置其初始化和脚本运行的安全性ActiveX在远程IE页面上执行,需要实现安全接口。
在ATL写的ActiveX中,用IObjectSafety。
/kb/168371/en-us在MFC写的ActiveX中,直接修改注册表。
/kb/161873/en-usmfc实现的ocx,要在app实现文件中包括两个文件:在ActivexDemo.cpp 文件中实现以下方法代码现在控件就可以在自注册时就注册为安全控件了。
2、设置项目属性将配置类型设置成静态库(.lib)3、最后生成项目,ocx控件就产生了。
ActiveX打包与发布在VS2005或VS2008安装后发现路径**VC7\Common7\Tools\Bin\下有许多小工具,我对带有Cert的文件比较感兴趣。
经过研究,发现是有关证书和签名的,当然,该证书未被证书认证机构认可。
下面列出这些工具和我的使用心得。
1。
Makecert.exe ---证书创建工具2。
Cert2Spc.exe ---发行者证书测试工具3。
Signcode.exe ---文件签名工具(VS2008带的是signtool)一、ActiveX发布步骤在这里简单说明下,打包activeX需要制作证书,具体用到makecert 、cert2spc 、signtool 这三个VS提供的工具,工具在VS文件夹里面,以下制作过程需要在工具所在的文件夹下完成!1、单击"开始"-->"运行(R)"-->输入"cmd"-->回车-->进入到操作的控件所在的目录(需要将上面所说的工具,和ocx控件放到一个文件夹下);2、创建PVK文件(私人密匙文件),在命令行中输入"makecert -sk demo demo.pvk -n CN=XXXXXXX公司",然后回车;sk-表示主题的密钥容器位置,ss-主题的证书存储名称,n-证书颁发对象,r-证书存储位置;3、创建CER文件(公司证书),在命令行中输入"makecert -sk demo.pvk demo.cer",然后回车,如图8所示,若出现"Successed"提示,则会在E:\ demo目录下生成demo.cer文件;sk-表示主题的密钥容器位置,is-颁发者的证书存储名称,n-证书颁发对象,ic-颁发者的证书存储位置,-$-授权范围(用于代码签名);4、创建SPC测试软件出版商证明书,在命令行中输入"cert2spc demo.cer demo.spc",然后回车;5、创建INF文件,用记录本编辑以下信息:代码6、创建CAB文件,在命令行中输入"cabarc -s 6144 n demo.cab atl90.dll Polygon.dll demo.inf",-s 选项表示在压缩文件中保留用于代码签名的空间,n命令指定希望创建CAB 文件,然后回车;7、使用Code Signing Wizard签署一个CAB文件,在控制台输入signtool signwizard 进入到signtool窗体中;8、单击"下一步(N)"按钮,选择要进行数字签名的且已做成CAB包的文件demo.cab文件;9、选择好CAB包后单击"下一步(N)"按钮,在选择想要的签名类型里选择"自定议(C)"并单击"下一步(N)"按钮;10、接下来单击"从文件选择(F)"按钮,选择刚刚制作的demo.cer;11、在单击"下一步(N)",然后选择"CSP中的私钥(K)";13、在"证书路径中的证书"中选择"证书路径中的所有证书,包括根证书(C)",在"其它证书(可选)"中选择"包括在以下PKCS #7 证书(.p7b)文件中的证书(P):",并单击"浏览(R)..."按钮选择demo.spc文件,选择完后单击"下一步(N)"按钮;14、接下来在弹出的"数据描述"窗口中输入公司的名称和网址并单击"下一步(N)"按钮;15、现大部份工作都已完成,在接下来的一步当中是可选的操作,其作用只是为CAB加入时间戳,此步骤完全可以不做,VeriSign: /scripts/timstamp.dll;16、完成,单击"下一步(N)"按钮便可来到数字签名向导的最后一步,即操作总览,如图26所示,单击"完成"按钮便可大功告成;下面是微软代码签名证书(.pvk/.spc)签名指南的演示本使用指南演示如何使用WoSign代码签名证书来给微软代码签名,Thawte和VeriSign代码签名证书也是使用同样方法,只是使用不同的时间戳URL。
用户在在线申请代码签名证书时会生成证书私钥文件,如:myCert.pvk,而代码签名证书成功颁发后的证书文件为公钥文件,如:myCert.spc,又称:软件发行证书(Software Publishing Certificate) 。
代码签名证书一般都是采用公钥和私钥分离的两个文件方式,适合于DOS 命令行方式的代码签名。
如果您您希望把代码签名证书导入到Windows证书存储区中,从而简化签名操作,请参考:不同证书格式转换指南。
WoSign代码签名证书的根证书链为:UTN-USERFirst-Object - WoSign Code Signing Authority使用微软的SignCode.exe就可以对微软的代码进行签名,如果您没有此文件,点击这里下载。
Signcode.exe 可以使用DOS 命令行方式实现签名,我们推荐用户使用数字签名向导方式,简单方便。
请注意:如果您开发的ActiveX为IE加载项,请先数字签名每个CAB文件中的.dll和.ocx等文件,再把这些文件打包成.cab文件后再数字签名.cab文件,以确保所有IE加载项都被IE验证和信任,否则会显示“未验证”而可能影响正常运行。
具体签名向导过程如下:(1) 运行Signcode.exe ,要求您选择需要签名的文件,支持:可执行文件(*.exe; *.dll; *.ocx) ;Cabinet 打包文件(*.cab) 和目录文件(*.cat) ,如下图1 所示( 如:TestSign.cab) ,请注意:如果签名的文件已经有数字签名,则会被新的签名覆盖:(2) 点击“下一步”后,如下图2 所示,会要求您选择“签名类型”,缺省的“典型”签名类型;请选择“自定义” 签名类型:(3) 如下图3 所示,点击“从文件选择”签名证书( 公钥文件),如:WotoneCS.spc :(4) 点击“下一步”后,如下图4 所示,会要求您选择私钥文件,如:WotoneCS.pvk ,其他参数不用动:(5) 点击“下一步”后,如下图5 所示,会提示要求输入私钥密码:(6) 点击“下一步”后,如下图6 所示,会提示要求选择散列算法( 摘要算法、缩微图算法) ,缺省为sha1 ,也可以选md5 :(7) 点击“下一步”后,如下图7 所示,选择哪些证书包括到数字签名中,直接点击“下一步”即可,即选择缺省的包括根证书:(8) 如下图8 所示,要求填写该签名代码的功能描述,推荐一定要认真填写,因为此信息将会在最终用户下载此代码时显示,有助于最终用户了解此代码的功能以确定是否下载安装。
第一行“描述”是指此代码的功能文字描述,第二行“ Web 位置”则让最终用户点击文字描述来详细了解此代码的功能和使用方法等,本演示中的“ Web 位置”为WoTrust代码签名证书简介页面:(9) 点击“下一步”后,如下图9 所示,选中“将时间戳添加到数据中”,请使用:WoSign 免费提供的时间戳服务URL:/timestamp 时间戳服务非常重要,添加时间戳后,即使您的代码签名证书已经过期,但由于您的代码是在证书有效期内签名的,则时间戳服务保证了此代码仍然可信,最终用户仍然可以放心下载,使得即使代码签名证书已经过期,您也无需重签和重新发布已经签名的代码。