我对visual basic 6项目有点问题。在IDE中一切正常 但是每次运行应用程序时,可执行文件都会崩溃。该应用程序使用回调与C ++ DLL进行通信。在回调开始时,即使是显示消息框这样简单的代码也会失败。
我将编译模式更改为P-Code,问题仍然存在。
任何帮助都会受到赞赏。
谢谢大家
答案 0 :(得分:3)
这听起来好像回调可能发生在与执行应用程序不同的线程上。 [编辑:正如我看到Jim已经建议的那样。]如果是这样的话,是的, kaboom 只要你“触摸”任何东西OLE相关或调用运行时。与多媒体计时器回调相同的故事,fwiw,我怀疑你必须采取与那些相同的预防措施,如果是这样的话。
具有不同线程回调的简短故事是,您需要使用在类型库中声明的PostMessage向自己发布消息,以便Err对象不是由VB设置的,然后让回调返回。您在收到发布的消息后进行自己的处理。这是我用于CCRP Timers库的类型库:
希望有帮助...
答案 1 :(得分:1)
谁在回电话给谁?给我们一些代码。
IDE可以掩盖实际问题,因此能够在那里运行并不能保证你所做的事情得到支持。
回调的一个常见问题是VB6的运行时不是线程安全的,所以如果另一个线程正在回调你的VB代码,你就不能做任何会调用运行时的东西 - 比如访问字符串或对象。 / p>
有些方法可以解决其中一些问题,但我认为我们首先需要了解更多。
答案 2 :(得分:0)
代码是否与IDE在同一位置运行?可能它是一个参考问题,你需要重新注册DLL。
部署包应确保安装完所有内容。
答案 3 :(得分:0)
几个问题: