Delphi调用C# Dll的2种方法
作者: 葛屹肃 | 日期: 2023-07-24 | 分类: 知识经验
由于工作需要,必须在Delphi项目调用C#所写的dll,否则,工作量将翻几番,需要将Delphi整个项目转为C#。网上搜索资料后,测试有2种可行方法。
开发工具:Delphi7 / Visual Studio 2010
一、C#编写dll
1、创建一个“类库”项目(Mydll)
using System.Runtime.InteropServices;
namespace Mydll
{
public interface IShow
{
string Show();
}[ClassInterface(ClassInterfaceType.None)]
public class FirstDll : IFirstDll
{
public string Show()
{
return “My First Dll”;
}
}
}
2、项目:属性→应用程序→程序集信息,色选“使程序集COM可见”
3、[生成]勾选“为COM互操作注册”
4、编译生成MyDll.dll,并将dll放到delphi主程序目录下
5、打开vs2010自带的工具“visual studio 2010命令提示”,输入regasm 路径/MyDll.dll 向系统注册此dll
二、Delphi调Dll
方法一:不需生成tlb文件,按钮中加入以下代码
procedure TForm1.Button1Click(Sender: TObject);
var
aclass: variant;
begin
aclass:= createoleobject(‘Mydll.FirstDll’); //项目名称.类名称
ShowMessage(aclass.Show());
end;
方法二:生成tlb文件
1、打开vs2010自带的工具“visual studio 2010命令提示”,输入 tlbexp 路径/MyDll.dll 得到一个MyDll.tlb 文件
2、打开delphi,选择“project”–“import type library”找到刚才的MyDll.tlb,点击 createunit,向delphi中引入一个com接口。
3、按钮中,加入以下代码
procedure TForm1.Button2Click(Sender: TObject);
var
aclass: TFirstDll;
begin
aclass := TFirstDll;.create(Self);
ShowMessage(aclass.Show());
end;
以上代码在Delphi7与Visual Studio 2010运行通过。
参考资料:
文章链接:https://www.geyisu.com/3183.html