程序在Visual Studio外部不起作用

时间:2015-05-08 17:02:23

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

我在这个应用程序中使用非托管dll与P / Invoke,我总是在Visual Studio中测试它(在x86 CPU上使用调试模式,因为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 个答案:

答案 0 :(得分:1)

在Google上搜索过没有真正简单的答案。这是人们(至少它对我有用而且很简单):

在Visual Studio中运行控制台应用程序时,查看底部的输出窗口,获取.. \ bin \ Debug \ * .exe的位置

将* .exe和* .config复制到所需的文件夹,运行它,它应该在Visual Studio中以相同的方式工作。

答案 1 :(得分:0)

感谢您的帮助,我的问题得到了解决:我只用2个参数调用了一个非托管函数,而它有3个。但是我还是不明白为什么它适用于调试模式,而不是没有调试。< / p>