我正在为我的高级项目制作一个编程学习游戏,我正在寻找一个可以编译 DLL 的编译器,该 DLL 然后可以动态加载到 Visual Studio 2008 C++ 应用程序中。
这里的重要思想是编译器是可再发行的。如果 VS 是可再发行的,我会使用它。
到目前为止,我在使用 MinGW 方面取得了一些成功,但这种成功是有限的。目前,我一次只能加载一个 DLL 并工作。当我尝试加载第二个时,VS C++ 应用程序因访问冲突错误而崩溃。
我已经能够毫无问题地加载在 VS 本身中编译的两个 DLL,所以它让我相信这是 MinGW 特有的东西,它是 DLL,以及它们如何与 LoadLibrary() 等交互。
我已经在这个问题上工作了很长一段时间,我很沮丧。如果有人知道您知道可以代替 MinGW 工作的不同编译器,或者如果您看到这个问题,也许您知道为什么第二个 DLL 会导致它崩溃。我确信它与每个 DLL 以某种方式踩到另一个有关,但我不知道那会是什么或如何找出来。
这可能是我编译 DLL 或加载它的方式;我不知道。
非常感谢您的反馈,谢谢!
编辑:这些是对 g++ 和 dlltool 的简单调用,用于创建 DLL http://pastebin.com/f675df4b0
这是我的一个 DLL 的来源。 http://pastebin.com/f5c062611
这是我的 C++ 应用程序中用于加载 DLL 的代码。 http://pastebin.com/f52f94a18
-迈克尔