gpt4 book ai didi

c++ - 如何使用 visual studio 构建可替换的 DLL?

转载 作者:太空狗 更新时间:2023-10-29 21:06:01 24 4
gpt4 key购买 nike

我想将游戏的某些扩展构建到 DLL 中,这样我就可以重新编译扩展并替换 DLL,而无需重建整个游戏。我该怎么做?

我在某处读到,每个新版本的 DLL 都必须与旧版本“二进制兼容”。只要我不更改函数名称,DLL 是否默认与 visual studio 二进制文件兼容?

最佳答案

您要做的不仅仅是保持函数名称相同。您必须确保称为应用程序二进制接口(interface)或 ABI 的兼容性。

除了符号名称之外,这还涉及很多东西。例如,您已经做了一些事情,比如使跨 DLL 边界传递的数据结构保持相同的大小,并且编译器必须将在您的模块中定义但在模块外部访问的任何类成员放在相同的相对位置。其中很多取决于编译器的 ABI。 Microsoft 编译器有一个坏习惯,即不能跨版本兼容 ABI,而其他一些编译器在兼容方面更加努力。但请记住,它需要的不仅仅是使用相同的编译器。

您可能需要阅读有关在您的环境中维护 ABI 兼容性的内容,因为它可能涉及比此处列出的更多的细节,并且有很多方法会出错。这是 one short article在上面。可能有更好的专门针对 MSVC 编译器的。

关于c++ - 如何使用 visual studio 构建可替换的 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8462347/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com