在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
每种编程语言调用DLL的方法都不尽相同,在此只对用C#调用Delphi DLL的方法进行介绍 首先要搞清楚一点的是:什么是托管,什么是非托管? 一般可以认为:非托管代码主要是基于win 32平台开发的DLL,activeX的组件,托管代码是基于.net平台开发的 C# 调用DLL中的非托管函数一般方法 首先,应该在C#语言源程序中声明外部方法,其基本形式是: [DLLImport(“DLL文件”)] 修饰符 extern 返回变量类型 方法名称 (参数列表) 其中: DLL文件:包含定义外部方法的库文件。 修饰符: 访问修饰符,除了abstract以外在声明方法时可以使用的修饰符。 返回变量类型:在DLL文件中你需调用方法的返回变量类型。 方法名称:在DLL文件中你需调用方法的名称。 参数列表:在DLL文件中你需调用方法的列表。 注意:需要在程序声明中使用System.Runtime.InteropServices命名空间。 DllImport只能放置在方法声明上。 DLL文件必须位于程序当前目录或系统定义的查询路径中(即:系统环境变量中Path所设置的路径)。 返回变量类型、方法名称、参数列表一定要与DLL文件中的定义相一致。 下面结合示例如: [DllImport("TestDll.dll", EntryPoint = "SayHello")] "TestDll.dll"为dll名称,EntryPoint 为函数名 当前程序中调用 GetMessage时就会返回Dll SayHello 函数的内容 其中,Dll SayHello函数如下(Delphi语言): function SayHello(NameTool:PChar):PChar;stdcall; 另外,如果需要调用传值,的方法时,通过Delphi的参数 var 与C#中的ref关键字结合使用如: procedure ChangeNumber(var number:Integer);stdcall; C#调用如下: private int MyNumber = 150; [DllImport("TestDll.dll", EntryPoint = "ChangeNumber")] 当C#程序中调用 Changes方法后,MyNumber的值将会改变为100 以上为C#简单调用Delphi Dll的方法。其中要注意的有: DLL文件必须位于程序当前目录或系统定义的查询路径中(即:系统环境变量中Path所设置的路径)。 返回变量类型、方法名称、参数列表一定要与DLL文件中的定义相一致。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论