vtable 中重载方法的顺序在 win32 编译器中是否始终相同?
问题:我有“接口”(没有数据成员的纯虚拟类)。它们可以通过来自不同编译器的指针来使用(客户端通过调用标准的 c dll 工厂方法获取指针)。除了一种方法外,这在不同的编译器(例如,用 borland 编写的客户端、用 Visual C++ 编写的接口 dll)上都可以正常工作。该方法重载了相同的返回值但不同的参数。此方法有 4 个版本。根据编译客户端的编译器,对该方法的相同调用会返回不同的结果。快速浏览一下汇编代码,我发现 vtable 中似乎有不同的偏移量(我不太擅长阅读汇编程序)。
现在我不知道 - 我是否找到了原因,或者是 borland 只是处理与 Visual Studio 不同的 vtable,一切都是正确的,我必须在其他地方搜索。
最好的问候,谢谢你的回答
托拜厄斯