我正在为我的高级项目编写一个编程学习游戏,我正在寻找一种编译器,它可以编译一个DLL,然后可以将它动态加载到Visual Studio 2008 C++应用程序中。可重新编译的编译器 - 用于MS Visual Studio的DLL
这里的重要思想是编译器是可再发行的。如果VS是可再发行的,我会使用它。
到目前为止,我已经使用MinGW取得了一些成功,但成功是有限的。目前,我只能够一次加载和运行一个DLL。当我尝试加载第二个VS C++应用程序崩溃时出现Access Violation错误。
我已经能够加载在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
-Michael
你可以尝试提供一些关于崩溃的更多信息。它在哪里崩溃。在LoadLibrary调用中,还是在调用您导入的任何特定函数时? – Laserallan 2010-02-17 23:03:45
这是一个通用的“访问冲突”崩溃。正确的LoadLibrary()。但总是在加载第二个DLL。它在第一次LoadLibrary()调用时从不崩溃。 如果我今晚可以在DLL函数中粘贴dll源代码,dll编译命令和代码。 – 2010-02-18 00:28:57