帮我呀,我为什么没有调通 sqlserver2000调用net写的dll (com

blackhero 2008-05-14 04:32:33
1、构造DLL:

首先我们要在。net里面创建一个类库工程,写个简单的HelloWorld

using System;

namespace MyDll
{
public class Class1
{
public Class1()
{

}
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,

sn -k ClassLibrary1.snk

regasm ClassLibrary1.dll /tlb:ClassLibrary1.tlb /codebase

regasm Project.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


我是这么注册com的


path D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin
PAUSE
sn -k keyfile.snk
PAUSE
tlbexp STCOM.dll /out:STCOM.tlb
PAUSE
D:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\RegAsm /tlb:STCOM.tlb STCOM.dll
PAUSE
gacutil -i STCOM.dll
PAUSE

为什么没有调通呀

数据库脚本就是没有取到值?

...全文
90 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
叶子 2008-05-16
  • 打赏
  • 举报
回复
黑侠客 (y)
blackhero 2008-05-16
  • 打赏
  • 举报
回复
问题已经解决,我搞了一周

要源码的留下email
叶子 2008-05-14
  • 打赏
  • 举报
回复
看起来没有什么明显的问题

62,242

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧