读书人

delphi函数在不同源代码资料中的函数声

发布时间: 2012-12-29 10:28:09 作者: rapoo

delphi函数在不同源代码文件中的函数声明
我想在a文件中声明一批函数,而b、c、d文件中分别实行a文件声明的函数。可是老是报错说
未能满足的前向声明:


[Pascal Error] CardReaderFunDeclare.pas(13): E2065 Unsatisfied forward or external declaration: 'YKT_Init'




我在uses里面都没问题,文件都包含好了,这是为什么?
[解决办法]
不可以这样,在文件的implementation上有声明函数,则在implementation下面必须有函数的实现部分。

如果你是调用dll的函数则例外。
[解决办法]
或者你可以这样。

UnitA

procedure a;

implementation

procedure a;
begin
Unitb.a;
end;

/////////////////////
UnitB

procedure a;

implementation

procedure a;
begin
//do something i want;
end;





[解决办法]
呵呵,不会啊,用了这么多年,我反倒这点Delphi比C++好
1.每个单元负责自己的功能
2.需要输出的函数列在每个单元上面
3.哪个单元要调用什么功能,直接Use哪个单元即可。
[解决办法]
引用:
引用:
呵呵,不会啊,用了这么多年,我反倒这点Delphi比C++好
1.每个单元负责自己的功能
2.需要输出的函数列在每个单元上面
3.哪个单元要调用什么功能,直接Use哪个单元即可。
如果两个单元之间有相互交错的引用,能够在a单元中use b的同时,b单元use a 吗?


可以。UnitA中将UnitB放在UnitB的implementation下use UnitA,在UnitB中将UnitA放在UnitA的implementation下use UnitB,你试下。
[解决办法]
错了,更新如下:

可以。UnitA中将UnitB放在UnitA的implementation下use UnitB,在UnitB中将UnitA放在UnitB的implementation下use UnitA,你试下。
[解决办法]
这一点我也觉得不爽,特殊情况下,确实只想在一个单元里定义函数,而实现部分可能分布在其他几个单元中,
暂时的方法是:
把实现部分的代码写入一个 *.inc文件中,然后在定义单元implementation后面加上
{$i xxx.inc}

读书人网 >.NET

热点推荐