一、打开vs2005

新建windows应用程序项目命名为SFrm,删除应用程序自动生成的Program.cs

(因为我们是要生成dll文件)

在窗体类新建一接口(interface SHFRM) 让窗体类实现接口 代码如下:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Data.SqlClient;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

namespace SFrm

{

public interface SHFRM   //此接口用在delphi下调用必须用到

{

void ShchildFrm();

}

public partial class Form1 : Form,SHFRM

{

private BindingSource bindingSource1 = new BindingSource();

private SqlDataAdapter dataAdapter = new SqlDataAdapter();

public Form1()

{

InitializeComponent();

}

///<summary>

///显示窗口

///</summary>

public void ShchildFrm()

{

Form1 frm = new Form1();

frm.Show();

}

///<summary>

///按钮事件

///</summary>

///<param name="sender"></param>

///<param name="e"></param>

private void button1_Click(object sender, EventArgs e)

{

dataGridView1.DataSource = bindingSource1;

GetData("select * from Customers");

}

private void GetData(string selectCommand)

{

try

{

String connectionString = "Data Source=.;initial catalog=Northwind;user id =sa;pwd=";

dataAdapter = new SqlDataAdapter(selectCommand, connectionString);

SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

DataTable table = new DataTable();

table.Locale = System.Globalization.CultureInfo.InvariantCulture;

dataAdapter.Fill(table);

bindingSource1.DataSource = table;

dataGridView1.AutoResizeColumns(

DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);

}

catch (SqlException)

{

MessageBox.Show("To run this example, replace the value of the " +

"connectionString variable with a connection string that is " +

"valid for your system.");

}

}

}

}

右击项目名在属性对话框中更改输出类型为”类库” 在界面点击程序集信息 按钮 如下图:

使程序集com可见必须选中

完成dll文件生成

二.DotNet 类库打包成COM类型库(在vs命令行执行如下操作)

Tlbexp.exe SFrm.dll /out:SFrm.tlb

三.注册COM类型库

Regasm.exe SFrm.dll

四.Delphi导入类型库

Delpi 中, Project -> Import Type Library ,选中类型库:dotnet2com.tlb,

生成 DotNet2Com_TLB 单元文件。单元文件中有接口 SHFRM。

SHFRM = interface(IDispatch)

['{D8400C54-E4B2-36BD-B970-45CD204F319A}']

procedure ShchildFrm; safecall;

end;和代理类声明 TForm1及获得 SHFRM接口的属性:

property DefaultInterface: _Form1 read GetDefaultInterface;

五.Delphi 中使用

uses

SFrm_TLB;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var

Frm:TForm1;

begin

Frm:=TForm1.Create(self);

(Frm.DefaultInterface as SHFRM).ShchildFrm();//显示dll文件里窗体

end;

delhi程序运行结果如下图:

注:在程序运行环境必须安装。net环境并注册dll文件 否则会报:无注册类别

转载于:https://www.cnblogs.com/chenghm2003/archive/2008/04/10/1147442.html

Delphi调用C#类库.doc相关推荐

  1. Delphi调用C#的加密解密(Base64/AES/DES/MD5可扩充)

    1. 背景: 近期,由于工作上与第三方公司传输数据的时候需要采取数据加密,但是我们采用的时较低版本的Delphi 6:由于加密算法等差异,导致在传输的加密数据第三方一致解析不了(具体问题表现为base ...

  2. 我对delphi调用第三方SDK的理解

    我对delphi调用第三方SDK的理解 去年就买了OrangeUI[FMX三方SDK服务-VIP]工具,前天听了王老师直播后,昨天第1次尝试着使用它,照着老师的步骤全部重新做了一遍,感觉很好,把实现过 ...

  3. C#生成COM组件,Delphi调用

    C#程序: 1)文件-->新建类库项目 2)Properties-->AssemblyInfo.cs 设置ComVisible为true 3)项目-->属性 4)属性-->生成 ...

  4. Rhapsody调用外部类库的多种方式

    Rhapsody调用外部类库的多种方式 声明:转至:Rhapsody调用外部类库的多种方式 随着国内医疗软件行业的发展,医院业务需求日渐复杂,在一些场景下,需要通过集成引擎调用外部程序.这里笔者根据自 ...

  5. Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API

    目录 Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API 一.概述及API 1.JS-SDK是对之前的 WeixinJSBridge 的一个包装 2.JS-SD ...

  6. Delphi 调用C#编写的WebService 参数为Null解决方法

    今天测试.net 2.0的WebService,发现了一个大问题.就是无法获取参数,参数永远是null.当然了使用.net调用 没有任何问题,web测试页也正常.不论是Delphi7还是java调用的 ...

  7. Delphi 调用VC的DLL

    Delphi 调用VC的DLL VC中DLL声名格式: Extern "C" void __declspec(dllexport) __stdcall ShowMess(HWND ...

  8. asp.net调用opencv类库,实现图像处理显示

    asp.net调用opencv类库,实现图像处理显示 ​      原理上来说,通过dll的调用,无论是asp.net还是winform都可以调用opencv及其类库.但是在实现的过程还是有许多细节是 ...

  9. Delphi调用REST

    Delphi调用REST很简单,首先在界面上放上: RESTClient1: TRESTClient; RESTRequest1: TRESTRequest; RESTResponse1: TREST ...

  10. Delphi 调用外部程序并等待其运行结束

    如何让Delphi调用外部程序并等待其运行结束 函数一: uses Windows, SysUtils, Classes, ShellAPI; function RunAndWait(FileName ...

最新文章

  1. C++中的虚继承与虚基类
  2. 《Cassandra实战》CassSeller程序源代码下载
  3. 《Effective Approaches to Attention-based Neural Machine Translation》—— 基于注意力机制的有效神经机器翻译方法
  4. [转载] 字符串的startsWith和endWith方法
  5. 基于GJB438C-2021的软件需求规格说明
  6. 计算机课网络连不了,上网课电脑没有摄像头怎么办
  7. 诚邀参加“低噪声飞秒激光”( 上海交大)研讨会
  8. Django文档地址
  9. TiPLM---产品全生命周期管理系统
  10. 享受蓝牙(一): 开始享受
  11. 滞回比较器 万字形状
  12. SMAA算法详解 - SMAANeighborhoodBlendingVS
  13. ZYNQ之AXI简介
  14. mongoDB Ops Manager
  15. rasa开发过程中出现的错误情况(实时更新)
  16. 浏览器搜索引擎(SEO)优化
  17. 智慧船舶带来港口革命,可视化成为主力军
  18. python:selenium库进行网易云歌曲匹配播放
  19. CVPR2021|| Coordinate Attention注意力机制
  20. 010 Editor:二进制文件编辑利器

热门文章

  1. Sql Server 存储过程分页大全(2005,2000)
  2. 伟大的领袖如何激励行动
  3. J2EE 领域的一些技术框架结构图
  4. SQL、NoSQL 已过时,快升级到 NewSQL,长江后浪推进浪啊
  5. JDK 13 的 12 个新特性,真心厉害和好用
  6. 从技术角度谈一谈,我参与设计开发的手Q春节红包项目
  7. 陈皓:不灌鸡汤,说真的年龄渐长,技术人的发展之路该怎么走?
  8. 到底工资要多少合适?
  9. 应用:文件夹copy器(多进程版)
  10. ASP.NET Core 入门教程 7、ASP.NET Core MVC 分部视图入门