我想创建一个Gctable::TGcTable
继承自的类Pgaccess::TPgTable
并将其导出到.DLL
问:有可能吗?
我有这样的类定义:
class DLL_EXPORT TGcTable : public Pgaccess::TPgTable
{
...
public:
__fastcall TGcTable(TComponent* Owner);
__fastcall virtual ~TGcTable(void);
virtual void __fastcall Assign(TGcTable* other);
void forceEmptyTable(void);
void __fastcall EmptyTable();
bool __fastcall Open(void);
...
}
class DLL_EXPORT SqlSchemaHelper
{
...
static AnsiString extractSchema(const AnsiString& tablename);
static AnsiString extractAlias(const AnsiString& tablename);
...
}
当我使用 TDump 实用程序查看 .dll 中的导出成员时,我看到的是:
00008E40 18 0020 OT::GetTables(System::AnsiStringT<(unsigned short)0> const&, Pgaccess::TPgConnection*)
0000DC70 22 0021 Gcquery::TGcQuery::~TGcQuery()
00021050 44 0022 Gctable::SqlSchemaHelper::extractAlias(System::AnsiStringT<(unsigned short)0> const&)
00020D20 43 0023 Gctable::SqlSchemaHelper::extractSchema(System::AnsiStringT<(unsigned short)0> const&)
00021EC0 46 0024 Gctable::SqlSchemaHelper::isValidDataType(Data::Db::TFieldType)
00021340 45 0025 Gctable::SqlSchemaHelper::getDataTypeSQLString(Data::Db::TFieldType, int)
00020A80 42 0026 Gctable::SqlSchemaHelper::fastSplit(System::AnsiStringT<(unsigned short)0> const&, char)
000194A0 26 0027 Gctable::SqlSchemaHelper::SqlSchemaHelper(Gctable::SqlSchemaHelper const&)
00019460 24 0028 Gctable::SqlSchemaHelper::SqlSchemaHelper()
000194C0 27 0029 Gctable::SqlSchemaHelper::SqlSchemaHelper(Gctable::SqlSchemaHelper const&)
00019480 25 002A Gctable::SqlSchemaHelper::SqlSchemaHelper()
00019510 29 002B Gctable::SqlSchemaHelper::~SqlSchemaHelper()
00019530 30 002C Gctable::SqlSchemaHelper::~SqlSchemaHelper()
000194E0 28 002D Gctable::SqlSchemaHelper::operator=(Gctable::SqlSchemaHelper const&)
00019120 23 002E Gctable::TGcTable::~TGcTable()
00003E40 13 002F BulkWriter::getBufferSize() const
所以它导出Gctable::SqlSchemaHelper
了类而不是Gctable::TGcTable
我相信 TPgTable 是在一个pgdacvclXXX.bpl