C#调用Delphi 7 创建的dll文件,字符串传递注意事项和例子

本文介绍了如何在C#中调用Delphi 7创建的dll文件,强调了字符串传递的注意事项,如使用Pchar类型,并提供了具体的DllImport用法和示例代码。详细阐述了DllImport属性的各个参数以及调用约定,帮助开发者正确地进行跨语言调用。
摘要由CSDN通过智能技术生成

一、Delphi 编写dll 中入口函数或过程后需要加stdcall修饰关键字;

C#中调用Delphi 编写的 DLL文件,采用非托管方式调用的,需要使用 [DllImport (....)  ],若系统框架为".NET Framework 2.0以上,需要在解决方案属性中要将目标平台需要选择“ANY CPU”,同时勾选“首选32位”,才可正确调用,否则会出错。

DllImport属性用于指定包含外部方法的实现的dll位置。

(1)DllImport属性只能放在方法声明上。

(2)DllImport具有单个定位参数:指定包含被导入方法的dll名称的dllName参数。

(3)DllImport具有6个命名参数:

a、CallingConvention参数:指示入口点的调用约定,如果未指定CallingConvention,则使用默认值CallingConvention.Winapi;

b、CharSet参数:指示用在入口点种的字符集。如果未指定CharSet,则使用默认值CharSet.Auto;

c、EntryPoint参数:给出所声明的方法在dll中入口点的名称。如果未指定EntryPoint,则使用方法本身的名称;

d、ExactSpelling参数:指示EntryPoint是否必须与指示的入口点的拼写完全匹配。如果未指定ExactSpelling,则使用默认值false;

e、PreserveSig参数:指示方法的签名应被应当被保留还是被转换。当签名被转换时,它被转换为一个具有HRESULT返回值和该返回值的一个名为retval的附加输出参数签名。如果未指定PreserveSig,则使用默认值fals

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值