c# - 程序无法在 Visual Studio 之外运行

标签 c# visual-studio dll visual-studio-2013 pinvoke

我在这个应用程序中使用带有 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/

相关文章:

c# - 如何解决命名不明确的扩展方法?

c# - 替代 Thread.Sleep?在 C# 中

c# - 使用参数从 C# 调用 void 函数(在 win32 中)

c++ - 将 C++ dll 注入(inject)器转换为 unicode

c# - 改进算法执行时间

c# - C# 中的图像处理 - 一个聪明的解决方案?

C# 可移植应用程序与 .NET

visual-studio - 有 Visual Studio 2012 预运行事件吗?

c# - 如何在 Visual Studio 中查找对给定类型变量的所有引用?

java - 无法执行 COM 类 : com4j. ComException : 80040154 CoCreateInstance failed : Class not registered : .\com4j.cpp:153