1

我想创建一个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

4

0 回答 0