C++ 导出类还原的问题
我把问题整理备忘一下,有个 Dll (见附件)导出的函数中,和 CxImage 类相关的只有这四个函数:000B 000A 000015F0 ??1CxImage@@UAE@XZ// public: virtual __thiscall CxImage::~CxImage(void)
0013 0012 000F223C ??_7CxImage@@6B@ < DATA >(1)// const CxImage::`vftable'
0016 0015 00001610 ??_FCxImage@@QAEXXZ// public: void __thiscall CxImage::`default constructor closure'(void)
0018 0017 00001620 ??_OCxImage@@QAEXAAV0@@Z// public: void __thiscall CxImage::`copy constructor closure'(class CxImage &)
那么请问,源代码中 CxImage 这个类的代码是怎么写才能实现这个导出效果的。
// < DATA >(1)说明虚表只有一项
补充下我的分析:
后三个导出是编译器自动生成的,首先你要解决怎么做到让编译器自动生成这三个导出函数。因为这三个是编译器默认生成的,所以源码应该是把整个类导出了,生成 `default constructor closure' 需要一个非默认构造,而导出中又不存在非默认构造。分析到这里感觉是出现了悖论 ... 谢谢分享 谢谢分享 虚表中仅存的一个函数为析构函数。
public: virtual __thiscall CxImage::~CxImage(void)
默认构造。
public: void __thiscall CxImage::`default ctor closure'(void)
复制构造。
public: void __thiscall CxImage::`copy ctor closure'(class CxImage &)
事实上,还额外存在由SDL自动生成的函数。
public: void __thiscall CxImage::__autoclassinit2(unsigned int)
这是用于初始化类内指针成员的。暗示了类内存在指针成员。 鲲鹏 发表于 2023-10-9 10:54
虚表中仅存的一个函数为析构函数。
public: virtual __thiscall CxImage::~CxImage(void)
默认构造。
多谢 ~
页:
[1]