delphi如何调用c#写的dll得问题?

yuanfly8888 2006-03-14 12:42:02
在c#中写了如下类库:
amespace netadd
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
public class add
{
public add()
{
//
// TODO: 在此处添加构造函数逻辑
//

}
public int addab(int a,int b)
{
return a+b;
}
}
}
生成时项目属性com interop也设置为true

然后使用RegAsm.exe进行了注册
在delphi中对生成的tlb文件进行了引入安装
控件中生成了新的组件 Tadd
但是这个组件没有addad方法阿
怎么使用呢
是我的类写的不对吗?
...全文
154 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanfly8888 2006-03-20
  • 打赏
  • 举报
回复
请大家支持!!!!
lextm 2006-03-15
  • 打赏
  • 举报
回复
现在我一般是用C#调用Delphi Win32\.NET.没有做过这样的东西.

不过李维的Inside VCL书里面有一个这样的范例,你可以去查查看.
hongqi162 2006-03-15
  • 打赏
  • 举报
回复
Taddab= Function (a:Integer;b:Integer):Integer;stdcall;


var
addab:Taddab;
FHandle:THandle;
begin
FHandle:=loadlibrary('c:\a.dll');
if FHandle>0 then
begin
@addab:=GetProcAddress(FHandle,'addab');
if @addab<>nil then
showmessage(inttostr(addab(1,1)));
end;
freeLibrary(FHandle);
end;
yuanfly8888 2006-03-15
  • 打赏
  • 举报
回复
没有人用过吗?
yuanfly8888 2006-03-15
  • 打赏
  • 举报
回复
lextm(LeLe 你说的Inside VCL里有,我下载了一个附带的源码,可惜例子太多,也没有目录,能告诉是那一章吗?
yuanfly8888 2006-03-15
  • 打赏
  • 举报
回复
看到了这样的做法
C#中 可以这样 去开发一个COM组件:
新建一个库类zk
using System;
using System.Runtime.InteropServices;
namespace zk
{
public interface Itest
{
string hello(string text);
}
[Guid("45afe420-07af-4746-9594-fe950ca3c9e4")]
public class myclass : Itest
{
public string hello(string text)
{
return text;
}
}
}
进入Visual Studio .NET 2003 命令提示
进入工程所在的目录的bin\Debug\
用命令 sn -k 1.snk 建立一个密锁对.
修改AssemblyInfo.cs中
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyKeyFile("1.snk")]
[assembly: AssemblyKeyName("1.snk")]
编译找个库类会生成zk.dll
命令提示符 输入 regasm zk.dll
再输入 gacutil /I zk.dll
提示Assembly successfully added to the cache
此时注册表中 就会存在{45afe420-07af-4746-9594-fe950ca3c9e4}
OK 了,此时就可以访问zk.myclass对象

在vb中的确可以调用zk.myclass对象
但在delphi中引入后,生成的类文件中没有string hello(string text);
这个方法,请多多发言!
yuanfly8888 2006-03-14
  • 打赏
  • 举报
回复
请帮忙啊
急啊
在vb里是可以调用成功的
但delphi里不会用啊

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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