Vb6应用程序在IDE中工作,但可执行文件崩溃

时间:2009-08-06 14:38:38

标签: vb6 crash executable

我对visual basic 6项目有点问题。在IDE中一切正常 但是每次运行应用程序时,可执行文件都会崩溃。该应用程序使用回调与C ++ DLL进行通信。在回调开始时,即使是显示消息框这样简单的代码也会失败。

我将编译模式更改为P-Code,问题仍然存在。

任何帮助都会受到赞赏。

谢谢大家

4 个答案:

答案 0 :(得分:3)

这听起来好像回调可能发生在与执行应用程序不同的线程上。 [编辑:正如我看到Jim已经建议的那样。]如果是这样的话,是的, kaboom 只要你“触摸”任何东西OLE相关或调用运行时。与多媒体计时器回调相同的故事,fwiw,我怀疑你必须采取与那些相同的预防措施,如果是这样的话。

具有不同线程回调的简短故事是,您需要使用在类型库中声明的PostMessage向自己发布消息,以便Err对象不是由VB设置的,然后让回调返回。您在收到发布的消息后进行自己的处理。这是我用于CCRP Timers库的类型库:

  

http://vb.mvps.org/tools/files/postmessage.zip

希望有帮助...

答案 1 :(得分:1)

谁在回电话给谁?给我们一些代码。

IDE可以掩盖实际问题,因此能够在那里运行并不能保证你所做的事情得到支持。

回调的一个常见问题是VB6的运行时不是线程安全的,所以如果另一个线程正在回调你的VB代码,你就不能做任何会调用运行时的东西 - 比如访问字符串或对象。 / p>

有些方法可以解决其中一些问题,但我认为我们首先需要了解更多。

答案 2 :(得分:0)

代码是否与IDE在同一位置运行?可能它是一个参考问题,你需要重新注册DLL。

部署包应确保安装完所有内容。

答案 3 :(得分:0)

几个问题:

  1. 可执行文件是在开发的同一台PC上运行还是不同的?
  2. 文件是否使用清单文件?如果是这样,mainfest会调用XP主题吗?
  3. 另外,如果使用清单,是否显示使用SXS for OCX文件?