gpt4 book ai didi

c++ - 多个 DLLMain 函数

转载 作者:行者123 更新时间:2023-11-28 04:35:43 25 4
gpt4 key购买 nike

我有一个 C++ 程序,它有一个 DLLMain 函数,当这个程序(实际上是一个 DLL)被另一个程序加载时,该函数运行一些代码。这工作正常。

现在,当我这次编译同一个 C++ 程序时,包括一个已经定义了 DLLMain 函数的 .obj 文件(由 C 代码生成),编译器 (在这种情况下,Windows 的 VS2010)提示 DLLMain 已经定义。

如果不使用链接器标志 /FORCE:MULTIPLE 如何让两个 DLLMain 函数(在 C 和 C++ 程序中定义)共存并在同一个 final 中运行动态链接库?

仅供引用,在 GCC for Linux 中使用 static void __attribute__((constructor)) _my_initializer(void) 工作正常(即两个初始化器可以共存于同一个最终 .so文件并运行)。

最佳答案

将其中一个 DLLMain 函数重命名为其他名称(我将其称为 CDLLMain),然后从另一个 DLLMain 调用重命名的函数>。在决定在哪里调用 CDLLMain 时必须小心(DLLMain 中的第一件事,返回之前的最后一件事(如果这样做安全的话),或者在中间的某个地方) ,处理它的返回值(您可以在 DLLMain 中继续还是需要返回),以及两个 DLLMain 函数中潜在的重复工作。

关于c++ - 多个 DLLMain 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51521356/

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