关于delphi调用.net com的详细过程

本文分享了如何使用Delphi调用.NET下编译的COM组件的全过程,包括创建COM主体文件、生成和注册DLL、使用BAT文件简化注册步骤,以及在Delphi中调用的方法。通过这些步骤,即使不熟悉.NET的Delphi开发者也能成功调用.NET COM组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 由于朋友他必须要用delphi调用.net 下的一个过程,.但是不会,找到我,我也觉得以前没有弄过,所以我 就到处找资料,找到后但都不是很全,摸索了几个小时,终于调通了,把过程给大家分享一下

 

这个是com的主体文件

using  System;
using  System.Runtime.InteropServices;
using  System.IO;
using  System.Text;

using  System.Security.Cryptography;
//  3desj加密
   namespace  _des

      
      [Guid(
"8B090A3D-9A44-4be6-9971-C7DFF9E111BB")]
      
//这个Guid 用工具---genguid 注册 生成一个系统没有用的值
    public interface DBCOM_Interface
    
{
        [DispId(
1)]
        
string DES3Encrypt(string strString, string strKey);
             [DispId(
2)]
        
string DES3Decrypt(string strString, string strKey);
        [DispId(
3)]
        
void Encrypt(ref byte[] Data, Int32 DataLen, byte[] Key);
    }


    
// Events interface Database_COMObjectEvents 
      [Guid("356D756C-0E42-49d6-A646-AACF7B5B04A9"), 
    InterfaceType(ComInterfaceType.InterfaceIsIDispatch)]
    
public interface DBCOM_Events 
本方案用提供Delphi7与.NET程序的协同开发, .NET程序开发服务端, Delphi7客户端。客户端只需实现界面、用户输入操作 及错误显示(提示),其他操作(包括对客户端数据集或者单条记录的校验都是发回到服务端进行的)都在服务端完成。服务端 支持部署在Web服务器(IIS, Webservice)或者独立服务器(可作为Windows程序独立运行或者Windows服务运行,TCP协议)。 "友一分销管理系统"是基于该框架实现的,详见"POS管理用户手册.doc",初始设置见"Readme.doc"。 一 .NET(C#)服务组件说明 .NET(C#)服务组件开发基于DotNetFrame4.0, 服务端集成Castle实现对AOP的支持。只要在项目中引用BuleCommon.dll程序集, 类(Class)继承于BuleCommon.BuEntity.BuEntityObj, 并且在类和方法前指定[BuleCommon.BuEntity.BuEntityAttribute()] 特性, 实现Bule_EntityRegClass : IBule_EntityRegClass注册类完成服务组件注册即可。 服务组件类框架: using BuleCommon; using BuleCommon.BuEntity; namespace BuJxcData { [BuEntity()] //使客户端能获取该服务组件(class) public class BuIOBillValidate : BuEntityObj { [BuEntity(BuEntityMethod.bemValidate)] //使客户端能获取该服务组件单记录校验方法 public virtual bool Buf_CallCalcFields(ref BuleEntityCall EntityData, ref BuRecordSet RecordSet) { } [BuEntity(BuEntityMethod.bemValidates)]//使客户端能获取该服务组件多记录校验方法 public virtual bool Buf_RefreshPriceList(ref BuleEntityCall EntityData, ref DataSet ds) { } } [BuEntity()] //使客户端能获取该服务组件(class) public class BuCustomers : BuEntityObj { [BuEntity(BuEntityMethod.bemGetName)]//使客户端能获取该服务组件根据代码获取信息方法 public BuRecordSet Buf_GetCustData(ref BuleEntityCall EntityData) { } } [BuEntity()]//使客户端能获取该服务组件(class) public class BuStockCgInBill : BuEntityObj { [BuEntity(BuEntityMethod.bemOpen)]//使客户端能获取该服务组件打开方法 public virtual DataSet Buf_OpenBillData(ref BuleEntityCall EntityData) { } [BuEntity(BuEntityMethod.bemSave)]//使客户端能获取该服务组件保存方法 override public bool Buf_SaveBillData(ref BuleEntityCall EntityData, ref DataSet ds) { } [BuEntity(BuEntityMethod.bemAudit)]//使客户端能获取该服务组件审核方法 public bool Buf_SaveCgInAuditBill(ref BuleEntityCall EntityData, ref DataSet ds) { } } } 二. Bule VCL组件说明 1.Bu_ClientObj 用于提供模块注册信息(模块名称,子系统编号,模块编号等)及访问服务器的方法(通
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值