有一个老项目是asp的,但是有些功能在asp上实现不了,.net中倒是很容易实现,所以就引出了标题所述是事情。
因为是第一次做,花了整整一天的时间,也走了一些弯路,现在把它总结一下。
Step 1.
在vs2003中新建一个类库项目,在"项目属性"-"配置属性"-"生成"中,设置"为 COM Interop 注册"为True
Step 2.
添加一个类,文件名无所谓
namespace TEST
{
public class dosm
{
....
public string test()
{
return "Hello, world!";
}
}
}
生成项目
Step 3.
新添加一个.asp文件
<%
set obj=Server.CreateObject("TEST.dosm")
response.write obj.test()
%>
浏览这个.asp文件时显示 "Hello, world!", 成功调用
进行其他操作也是类似。
注意事项:
1.如果要在其他机器上使用这个组件,则把生成的.dll文件拷贝到对应的机器上,然后用"regasm your.dll /codebase" 进行注册,regasm 这个程序在 "%SystemRoot%\Microsoft.NET\Framework\%FrameworkVersion%"目录下。
2.返回的数据类型可能有一些限制,比如数组类型,在vbscript中就不怎么好访问(我没有试出来 :( ),不知大家有什么好方法
3.被调用的函数不能是静态函数,否则会找不到。
本文作者: