1

Gctable::TGcTable継承元のクラスを作成し、 .DLLPgaccess::TPgTableにエクスポートしたい

質問:可能ですか?

私はそのようなクラス定義を持っています:

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