我在 Delphi BPL 中有代码,并希望在 C++ Builder 中使用它。但是,它对我不起作用。
这是我所做的:
(1) Delphi BPL 包:
package PackageNameHere;
{$R *.res}
{$ALIGN 8}
{$ASSERTIONS ON}
{$BOOLEVAL OFF}
{$DEBUGINFO ON}
{$EXTENDEDSYNTAX ON}
{$IMPORTEDDATA ON}
{$IOCHECKS ON}
{$LOCALSYMBOLS ON}
{$LONGSTRINGS ON}
{$OPENSTRINGS ON}
{$OPTIMIZATION ON}
{$OVERFLOWCHECKS ON}
{$RANGECHECKS ON}
{$REFERENCEINFO OFF}
{$SAFEDIVIDE OFF}
{$STACKFRAMES OFF}
{$TYPEDADDRESS OFF}
{$VARSTRINGCHECKS ON}
{$WRITEABLECONST OFF}
{$MINENUMSIZE 1}
{$IMAGEBASE $400000}
{$DESCRIPTION '...'}
{$IMPLICITBUILD OFF}
.........
contains
hcg_employeeAuth in 'Src\hcg_employeeAuth.pas';
(2) 在包选项中,我启用了“创建所有 C++ Builder 文件”
(3)在C++ Builder表单中,应该使用的代码:
#include <vcl.h>
#pragma hdrstop
....................................
#include <hcg_employeeAuth.hpp>
#pragma package(smart_init)
#pragma resource "*.dfm"
....................................
void __fastcall TDLG_Main::FileNew1Execute(TObject *Sender)
{
if (ThcgEmployeeAuth::Authentificate(__classid(ThcgEmployeeAuth))) {
// ...
}
}
(4) 在 C++ Builder 项目的选项中,我有
- 禁用:动态 RTL
- 禁用:使用运行时包
- 在包部分,检查包,所以它将使用
- 在各处添加了 DCU/PAS 和 BPL 的路径……但它不起作用。
我在链接器过程中收到以下错误消息:
ILINK32 错误:无法解析 ....\main.obj 引用的外部 'Hcg_employeeAuth::ThcgEmployeeAuth::'