首页 > 编程 > .NET > 正文

.NET编程中使用旧有的COM组件

2024-07-10 12:57:58
字体:
来源:转载
供稿:网友

本文以使用w3 jmail为例

1. 生成包含metadata(元数据)的dll

在jmail的安装目录,键入以下命令,将生成jmail_dotnet.dll

tlbimp jmail.dll /out:jmail_dotnet.dll

事实上,因为实际的jmail组件为一"unmanaged"(不受控) com组件,因此需要一个proxy在asp+应用程序和com组件之间搭桥。

2. 放置 metadata dll

对于asp+页面,有两种途径:
1)置于该页面所在目录的bin子目录;
2)置于该页面所在的目录。
对于第二种方法,在每一个需要使用jmail的asp+页面,我们都需要使用一个@assembly语句,因此推荐使用第一种方法,将jmail_dotnet.dll拷入该页面所在目录的bin子目录。

对于普通的c#程序,将它和源码放在一起就行了。

3. 取得组件的有关详细信息

我们需要知道
1) namespace (用于@import语句或using语句)
2) 准确的类名
3) 方法和属性的数据类型
4) 方法和属性精准的拼写(c#严格区分大小写)

这些信息可以用ngws sdk自带的工具il (intermediate language) disassembler 解析刚刚的metadata dll得到。详细的信息就不多说了,好好看看吧。

4. 使用

两个最简单的例子

——————————————————————————————
c#程序

//c#:sendmail.cs,使用csc /r:jmail_dotnet.dll sendmail.cs编译

using system;
using jmail;

public class jmailversion {
  public static void main() {
    smtpmail email = new smtpmail();
    string strversion = email.version;
    system.console.writeline(strversion);
  }
}

——————————————————————————————
asp+页面:

<% @page language="c#" %>
<% @import namespace="jmail" %>
<%
smtpmail email = new smtpmail();
string strversion = email.version;
response.write(strversion);
%>

——————————————————————————————
[email protected]
http://www.aspgreat.com
http://www.dotnetcn.com
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表