IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Delphi调用C# DLL方法 -> 正文阅读

[开发工具]Delphi调用C# DLL方法

C#端

新建类库:

想要COM组件能够让Delphi调用必须使用接口形式
使用vs工具生成GUID删除多余的花括号
在这里插入图片描述
在这里插入图片描述
代码如下:

namespace TestDll
{
   public interface ITestClass1
   {       
       void YourFunction1();
       void YourFunction2(string str);
   }

   [ClassInterface(ClassInterfaceType.None)]
   [Guid("6E94AE46-B2D0-4B66-9B5C-52077FBFD2D0")]
   [ProgId("TestDll.Class1")]
   public class Class1 : ITestClass1
   {
       public void YourFunction1()
       {
           Debug.Print("YourFunction1");
       }

       public void YourFunction2(string str)
       {
            Debug.Print(str);
       }
   }
}

鼠标右键项目属性->应用程序-程序集信息->使程序集COM可见
在这里插入图片描述
生成DLL文件后根据.NET Framework的版本选择regasm的版本,我示例中的版本是.NET Framework3.5的所以我们在命令行窗口中输入(注意后面的 /codebase一定要加很多文章都没加这个参数导致Delphi调用COM组件失败):

cd C:\Windows\Microsoft.NET\Framework\v2.0.50727
.\RegAsm.exe 你的dll文件地址 /tlb: 项目名称.tlb /codebase

以上操作已经完成了COM组件的注册,如需要在其他机器使用需要拷贝DLL文件和TBL文件然后使用上面的命令注册(建议打包的时候写入注册表里面)。


Delphi端:

新建项目

各版本的Delphi界面不一样,我使用的Delphi10.3.3,导入TLB文件方法如图

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
![](https://img-blog.csdnimg.cn/ac295f57884a437ead81ea471cb98388.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAbTBfMzc4NzYxOTc=,size_15,color_FFFFFF,t_70,g_se,x_16
在这里插入图片描述
完了之后就可以引用TLB文件了
在这里插入图片描述
在这里插入图片描述
示例代码如下:

unit Demo;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, AGSFileUploadDelphi_TLB;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    Label2: TLabel;
    Label3: TLabel;
    Button2: TButton;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  OSSService: IOSSService;
  Path: string;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

begin
    OSSService := COOSSService.Create;
    Path := ossService.PutObjectFromFile('C:\Users\Administrator\Desktop\testtxt');
    Label2.Caption := Path;
end;

end.
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-16 19:02:43  更:2021-11-16 19:04:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:00:48-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码