我在这个应用程序中使用带有 P/Invoke 的非托管 dll,并且我总是在 Visual Studio 中测试它(在 x86 CPU 上使用 Debug模式,因为 dll 仅是 x86),并且它工作得很好。但是,当我在一段时间后手动启动 exe 时(可能是在第一次操作这些 dll 时,但我不太清楚),它说 exe 已停止工作,并且它开始检查解决方案(我在 Visual Studio 2013 上使用Windows 8.1,如果重要的话)。我尝试将 dll 添加到项目中作为现有项目,但这没有帮助。我也知道,这并不是因为它找不到这些 dll,因为如果我删除它们,它不会崩溃,只是卡住而没有任何错误消息。它在 Visual Studio 中的工作方式不应该与手动启动相同吗?
当我从 Visual Studio 运行时,还有一个奇怪的错误:一切工作正常,但有时 Visual Studio 会突然停止调试,就好像程序被关闭并且我的应用程序的 GUI 卡住一样,我只能通过以下方式关闭它关闭 Visual Studio(当我关闭它时,GUI 消失)。也许这是一个完全不同的问题,但可以联系起来。
编辑:
这是 github 上的项目,如果有人可以检查一下: https://github.com/geiszla/CycriptGUI
一些新闻:如果我使用 Ctrl+F5 运行它,它也会崩溃。 F5 和 Ctrl+F5 之间有什么区别,会导致此问题?
最佳答案
感谢您的每一次帮助,我的问题得到了解决:我调用了一个只有 2 个参数的非托管函数,而它有 3 个参数。但是我仍然不明白为什么它在 Debug模式下工作,而不是在没有调试的情况下工作。
关于c# - 程序无法在 Visual Studio 之外运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30129174/