转发类型未解析 - Lazarus FreePascal
Forward type not resolved - Lazarus FreePascal
我正在尝试使用我之前在 C 中成功使用过的 Pascal 外部库。为了使用这个库,我得到了一个 .h 文件、一个 .dll 文件和一个 .lib 文件。
我使用 h2pas 实用程序转换了 .h 文件,但出现以下错误(我怀疑这些错误与链接器相关):
Error: (5009) Forward type not resolved "XPRSbranchobject"
这似乎是有问题的行:
type
...
XPRSbranchobject = ^xo_user_branch_entity_s ;
如何让 Lazarus 知道 xo_user_branch_entity_s
是外部库的一部分?
你可以简单地写:
type
xo_user_branch_entity_s = record
a: integer; // <-- probably redundant
end;
XPRSbranchobject = ^xo_user_branch_entity_s;
你必须确定你永远不会(取消)分配这样的对象(记录,直接或通过指针);如果源试图访问内部成员,编译器会报错。
这意味着 allocation/deallocation 是由 DLL 完成的。
它应该(可能?)有效...
我正在尝试使用我之前在 C 中成功使用过的 Pascal 外部库。为了使用这个库,我得到了一个 .h 文件、一个 .dll 文件和一个 .lib 文件。
我使用 h2pas 实用程序转换了 .h 文件,但出现以下错误(我怀疑这些错误与链接器相关):
Error: (5009) Forward type not resolved "XPRSbranchobject"
这似乎是有问题的行:
type
...
XPRSbranchobject = ^xo_user_branch_entity_s ;
如何让 Lazarus 知道 xo_user_branch_entity_s
是外部库的一部分?
你可以简单地写:
type
xo_user_branch_entity_s = record
a: integer; // <-- probably redundant
end;
XPRSbranchobject = ^xo_user_branch_entity_s;
你必须确定你永远不会(取消)分配这样的对象(记录,直接或通过指针);如果源试图访问内部成员,编译器会报错。
这意味着 allocation/deallocation 是由 DLL 完成的。
它应该(可能?)有效...