如何使用C的dll制作一个Delphi的DLL(50分)

  • 主题发起人 Cdocument_view
  • 开始时间
C

Cdocument_view

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要用C的DLL再做一个delphi的DLL,请问在制作时应该如何声明,以使我能正确的调用
C的dll提供的函数??
 
就是将c的函数声明为pacal类型的
主要注意一下两种语言对应的变量类型
 
首先C的DLL你能够使用DELPHI正常调用,
再写delphi的DLL提供别人调用!
 
library Project1;
这个是delphi的dll自动生成的,我需要在这个里面用到我用C做的
uses dll中的函数,比如有一个函数
SysUtils, HANDLE Open(int nChannel,int nNumber)
Classes;
我应该在什么地方声明我的这个函数?如何声明?
谢了!
{$R *.res}
begin
end.
 
如果你要实现的功能完全相同,就没有必要做一个“Delphi的DLL”,因为动态库是模块化的编程,和具体的语言是无关的。
不过是调用C的DLL的时候加上stdcall就可以了。
 

我的问题很简单:我需要制作一个delphi的dll给别人用,在制作过程中需要用到我做的
C的dll中的一些函数。我要使用这些函数,在那个单元里面,在什么地方去声明这些
函数?如何声明?举例来说有一个c的dll函数HANDLE Open(int nChannel,int nNumber)
在以下自动生成的代码中,应该在什么地方声明才能正确调用! 不知道说的清楚吗?!
library Project1;
uses
SysUtils,
Classes;
{$R *.res}
begin
end.
 
你现在不是需要写DLL,是需要写出C语言函数的声明
如:
function Open(nChannel, nNumber: Integer): Integer;
external 'Dll名字' name 'Open';
之类的。
 
如果你非要写一个DLL,那么这些声明在Uses下面就可以的。
 
yzhshi
external 可以静态调用dll得 不需要再生成了 只要参数对就行了
 
delphi 调用 c ,如果 c 没声明 WINAPI 等, delphi 要加上 cdecl
 
顶部