我在我的DLL中有一个抽象类。我可以在没有重新编译exe文件的情况下更改dll界面吗?
class Base {
virtual char * First() = 0;
virtual char * Second() = 0;
virtual char * Third() = 0;
};
这个动态库和这个接口用了很长时间。 我的代码中存在我的错误。现在我想改变这个接口
class Base {
virtual const char * First() const = 0;
virtual const char * Second() = 0;
virtual char * Third() const = 0;
};
一些EXE程序使用我的DLL。 EXE程序是否可以在不重新编译的情况下工作? 独立考虑每个新界面行中的更改。
说明:当然,EXE程序不会改变函数的结果。
你写的“调用约定不依赖于cv-qualification”。就是那个问题。这样对吗? – 2009-11-24 14:15:04
这是用于Win32的。 'this'在ECX中传递,无论它是否为const,并且EAX中有一个'char *'return,无论它是否为const。但仅此不足以使绑定工作。正如我所说我不知道MSVC的vtable,并且我也不知道Win64调用约定(如果你有一个64位版本)。 – 2009-11-24 14:22:41
为什么只有第四个人理解我的问题? - 修辞。 – 2009-11-24 14:26:11