delphi可以寫dll嗎?? |
尚未結案
|
diehuman
初階會員 發表:91 回覆:57 積分:29 註冊:2003-04-16 發送簡訊給我 |
|
hcker
中階會員 發表:95 回覆:118 積分:62 註冊:2003-02-09 發送簡訊給我 |
|
chih_kuan
中階會員 發表:38 回覆:82 積分:54 註冊:2003-02-20 發送簡訊給我 |
|
sos_admin
版主 發表:121 回覆:697 積分:768 註冊:2003-07-23 發送簡訊給我 |
[转自delphi帮助]
动态调入库的主源文件和程序的一样,除了它以关键字library 开始(取代program)。
只有被库明确输出的例程才能被其它库或程序导入,下面的例子演示了库输出两个函数,Min 和Max。
library MinMax;
function Min(X, Y: Integer): Integer; stdcall;
if X < Y then Min := X else Min := Y;
function Max(X, Y: Integer): Integer; stdcall;
if X > Y then Max := X else Max := Y;
end;
exports
Min,
Max;
begin
end.
若要你的库对其它语言编写的程序是可见的,最安全的办法是在声明输出函数时指定stdcall 调用约定,
其它语言或许不支持Object Pascal 默认的register 调用约定。 库可以通过多个单元文件创建,此时,库的源文件通常简化为包含一个uses 子句、一个exports 子句和
初始化代码。比如,
library Editors;
uses EdInit, EdInOut, EdFormat, EdPrint;
exports
InitEditors,
DoneEditors name Done,
InsertText name Insert,
DeleteSelection name Delete,
FormatSelection,
PrintSelection name Print,
...
SetErrorHandler;
begin
InitLibrary;
end.
你可以把exports 子句放在单元的接口或实现部分,任何在uses 子句中包含这个单元的库自动输出单元
输出的例程,不必有自己的exports 子句。
指示字local 标记一个例程不能被输出,它是平台相关的,在Windows 编程中没有作用。
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |