delphi调用C#编写的DLL
一、C#端
创建C#类库
using System;
using System.Runtime.InteropServices;namespace MathOperations
{// 1. 首先明确定义接口[ComVisible(true)][Guid("9E5E5FB2-219D-4D07-B6A9-763C392D6F70")] // 接口GUIDpublic interface ICalculator{int Add(int a, int b);int Subtract(int a, int b);double Divide(int a, int b);string GetVersion();}// 2. 实现接口的类[ComVisible(true)][Guid("9E5E5FB2-219D-4D07-B6A9-763C392D6F71")] // 类GUID[ClassInterface(ClassInterfaceType.None)] // 禁用自动接口生成public class Calculator : ICalculator{public int Add(int a, int b) => a + b;public int Subtract(int a, int b) => a - b;public double Divide(int a, int b){if (b == 0) throw new DivideByZeroException();return (double)a / b;}public string GetVersion() => "Calculator v1.0 (C#)";}
}
设置com可见
编译DLL
注册DLL
C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe MathOperations.dll /tlb:MathOperations.tlb /codebase
二、delphi端
导入类型库
默认生成这个文件