1、构造dll:首先我们要在。net里面创建一个类库工程,写个简单的helloworld
using system;
namespace mydll
{
/// <summary>
/// class1 的摘要说明。
/// </summary>
public class class1
{
public class1()
{
//
// todo: 在此处添加构造函数逻辑
//
}
public string sayhello()
{
return "helloworld";
}
}
}
mydll是这个dll的名字.编译以后,到你输出目录里找mydll.dll生成了;切换到命令行模式,在mydll.dll的目录下输入sn -k mydll.snk生成密钥对;
然后回到你的vs.net工程下打开assemblyinfo.cs看[assembly: assemblykeyfile("")]选项,输入你的密钥对路径‘..\\..\\bin\\debug\\mydll.snk’
重新编译mydll.dll;最后是装配了,在命令行下输入:regasm mydll.dll,成功后将mydll.dll拷贝到c:\windows\assembly目录下
(这一步是听说的,不知道啥用。但是实际我试过不用拷贝也可以调用)。
2、
sqlserver调用事例:
declare @ret int
declare @object int
declare @src varchar(500)
declare @desc varchar(500)
declare @return varchar(500)
exec @ret=sp_oacreate mydll.class1,@object out
if @ret <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out
select hr=convert(varbinary(4),@ret), source=@src, description=@desc
return
end
-- call a method that returns a value.
exec @ret = sp_oamethod @object, sayhello, @return out
if @ret <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out
select ret=convert(varbinary(4),@ret), source=@src, description=@desc
return
end
print result=+@return
-- destroy the object.
exec @ret = sp_oadestroy @object
if @ret <> 0
begin
exec sp_oageterrorinfo @object, @src out, @desc out
select ret=convert(varbinary(4),@ret), source=@src, description=@desc
return
end
文章整理:站长天空 网址:http://www.z6688.com/
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




