我正在将一些C头文件翻译成Delphi.
在这些头文件中,两个文件彼此共享它们的结构.
当我在Delphi中尝试这个时,它给了我循环引用错误.
所以我目前正在单个.pas文件中编写两个头文件的翻译.
有没有其他方法来解决这个问题?
这是一个小例子.
实际的头文件比较复杂:
== == File1.h
struct a
{
int data;
}
int compare(struct a,struct b);
Run Code Online (Sandbox Code Playgroud)
== == File2.h
struct b
{
int data;
}
int compare(struct A,struct b);
Run Code Online (Sandbox Code Playgroud)
== == File1.pas
uses File2;
type
a = packed record
data: Integer;
end;
compare = function(d1: a; d2: b): Integer; cdecl;
Run Code Online (Sandbox Code Playgroud)
== == File2.pas
uses File1;
type
b = packed record
data: Integer;
end;
compare = function(d1: a; d2: b): Integer; cdecl;
Run Code Online (Sandbox Code Playgroud)
正如Eugene所指出的,圆形接口单元引用在Delphi中是不可能的.有几种可能的解决方案:
implementation部分(如果可能).请注意,德尔福强迫您考虑循环引用的事实并不是一件坏事恕我直言.在许多情况下,这些循环引用会引起您注意设计中的缺陷.
| 归档时间: |
|
| 查看次数: |
1013 次 |
| 最近记录: |