c# 验证码组件 可vb,asp,net调用
今天公司要求用C#写个验证码组件,让asp可以调用,在网上找了一堆资料,终于给我给搞出来了,因为本人第一次写组件,也是第一次发表文章,所有可能说的不是很好,大家请见谅。
csdn上有这么篇文章,想学习写组件的可以去看看:http://blog.csdn.net/KimmKing/archive/2008/12/04/3445233.aspx,因为本人就是仿照这个写的验证码组件,因为怕上面的文章丢失,我就在这里简单说下创建的过程:
1、创建一类库
2、实现一个类(具体代码下面详写)
3、给文件签名
方法:选择开始菜单中Vistual Studio目录下的Vistual Studio Tools下的Vistual Studio 命令提示。使用sn -k c:\myKey.snk生成签名文件。在项目上右键,点击属性,选择签名,选中为程序集签名,选择myKey.snk文件。
4、生成解决方案
在项目目录的\TestCom\bin\Debug中可以找到TestCom.dll
5、生成tlb类库
在Visual Studio命令提示符下,切换到此目录。
输入tlbexp TestCom.dll /out:TestCom.tlb
6、注册类型库
输入regasm TestCom.dll /tlb: TestCom.tlb /codebase,将类型库导入到注册表。提示成功注册了类型,说明操作成功,此时TestCom .dll可以作为一个com来使用。
7、添加dll到GAC
输入gacutil /i TestCom.dll,将此.net程序集添加到GAC。
这样创建组件的所有工作就完成了。剩下的就是调用了
在vb和net里面调用:导入dll,实例化对象就可以使用了
(Dim a As New TestCom.Class1)a.方法
(TestCom.Class1 aa = new TestCom.Class1())aa.方法
在asp调用:
<%
SET s = CreateObject("TestCom.Class1")
s.test()
%>
以上就是我找到的创建组件的资料,那么现在就开始编写验证码组件的代码吧
首先编写类库:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Drawing;
using System.Security;
namespace TestComs
{
[ComVisible(true)]
public interface iClass1
{
string DoCode(int num);
byte[] DoImg(string code);
}
[ComVisible(true)]
[ClassInterface(ClassInterfaceType.AutoDual)]
public class Class1 : iClass1
{
private double PI2;
public Class1()
{
PI2 = 6.
相关文档:
MSComm控件提供了两种处理通信的方式:一种为事件驱动方式,该方式相当于一般程序设计中的中断方式。当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。本文的两个例子均采用该方式。另一种为查询方式,在用户程序中设计定时或不定时查询 MSComm控件的某些属性是否发生变化,从而� ......
建一个模块
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilt ......
VB 注释程序代码的符号是 ',只要在某行程序前面加上该符号就可以注释该行程序。但如果程序代码语句很多的时候,一行一行地注释就非常不方便。其实 VB
本身提供了一次性注释多条语句的功能:在主菜单“视图”选项的“工具栏”下,选中“编辑”,VB
的界面会出现一排工具按钮,其中就有用 ......
Private Sub Form_load()
'判断程序是否已经运行
If App.PrevInstance
Then
MsgBox "本程序已经运行!", vbInformation Or vbOKOnly, "提示信息"
Unload
Me
Exit Sub
&n ......