Delphi调用C#类库.doc
一、打开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相关推荐
- Delphi调用C#的加密解密(Base64/AES/DES/MD5可扩充)
1. 背景: 近期,由于工作上与第三方公司传输数据的时候需要采取数据加密,但是我们采用的时较低版本的Delphi 6:由于加密算法等差异,导致在传输的加密数据第三方一致解析不了(具体问题表现为base ...
- 我对delphi调用第三方SDK的理解
我对delphi调用第三方SDK的理解 去年就买了OrangeUI[FMX三方SDK服务-VIP]工具,前天听了王老师直播后,昨天第1次尝试着使用它,照着老师的步骤全部重新做了一遍,感觉很好,把实现过 ...
- C#生成COM组件,Delphi调用
C#程序: 1)文件-->新建类库项目 2)Properties-->AssemblyInfo.cs 设置ComVisible为true 3)项目-->属性 4)属性-->生成 ...
- Rhapsody调用外部类库的多种方式
Rhapsody调用外部类库的多种方式 声明:转至:Rhapsody调用外部类库的多种方式 随着国内医疗软件行业的发展,医院业务需求日渐复杂,在一些场景下,需要通过集成引擎调用外部程序.这里笔者根据自 ...
- Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API
目录 Delphi调用微信原生Web开发接口JS-SDK开发小程序及微信支付等的Rest API 一.概述及API 1.JS-SDK是对之前的 WeixinJSBridge 的一个包装 2.JS-SD ...
- Delphi 调用C#编写的WebService 参数为Null解决方法
今天测试.net 2.0的WebService,发现了一个大问题.就是无法获取参数,参数永远是null.当然了使用.net调用 没有任何问题,web测试页也正常.不论是Delphi7还是java调用的 ...
- Delphi 调用VC的DLL
Delphi 调用VC的DLL VC中DLL声名格式: Extern "C" void __declspec(dllexport) __stdcall ShowMess(HWND ...
- asp.net调用opencv类库,实现图像处理显示
asp.net调用opencv类库,实现图像处理显示 原理上来说,通过dll的调用,无论是asp.net还是winform都可以调用opencv及其类库.但是在实现的过程还是有许多细节是 ...
- Delphi调用REST
Delphi调用REST很简单,首先在界面上放上: RESTClient1: TRESTClient; RESTRequest1: TRESTRequest; RESTResponse1: TREST ...
- Delphi 调用外部程序并等待其运行结束
如何让Delphi调用外部程序并等待其运行结束 函数一: uses Windows, SysUtils, Classes, ShellAPI; function RunAndWait(FileName ...
最新文章
- C++中的虚继承与虚基类
- 《Cassandra实战》CassSeller程序源代码下载
- 《Effective Approaches to Attention-based Neural Machine Translation》—— 基于注意力机制的有效神经机器翻译方法
- [转载] 字符串的startsWith和endWith方法
- 基于GJB438C-2021的软件需求规格说明
- 计算机课网络连不了,上网课电脑没有摄像头怎么办
- 诚邀参加“低噪声飞秒激光”( 上海交大)研讨会
- Django文档地址
- TiPLM---产品全生命周期管理系统
- 享受蓝牙(一): 开始享受
- 滞回比较器 万字形状
- SMAA算法详解 - SMAANeighborhoodBlendingVS
- ZYNQ之AXI简介
- mongoDB Ops Manager
- rasa开发过程中出现的错误情况(实时更新)
- 浏览器搜索引擎(SEO)优化
- 智慧船舶带来港口革命,可视化成为主力军
- python:selenium库进行网易云歌曲匹配播放
- CVPR2021|| Coordinate Attention注意力机制
- 010 Editor:二进制文件编辑利器