比如某个dll完整运行一遍需要30分钟,我想知道这期间dll里面的一个变量的值的变化情况,
可是当我在vb程序窗口中点击command按钮要求在文本框显示该变量时,竟然没有作用。只能等到dll运行完毕,才显示最终值真是头疼。
后来有同学说,可以尝试采用共享内存的方法,可我不知道vb里面如何实现这个功能。期待答案...

解决方案 »

  1.   

    不知道那个dll是否你自己写的,如果有源代码的话你可以加入个回调的方法,这样就不必头疼了因为dll是进程内组件,所以在vb里你一般只能等待它执行完才可以
      

  2.   

    是自己写的一个sub子程序如何回调 我的意思就是回显不了其中的参数即时值 在dll执行完毕之前 窗体好像不响应了 
    可能因为我在dll中采用了大循环程序 所以cpu占用率接近100%
      

  3.   

    http://blog.csdn.net/goodname008/archive/2005/01/18/258215.aspx我的一篇关于底层键盘钩子的文章,使用的就是回调,里面讲了如何在DLL中即时通知VB程序。如果在DLL中有比较耗时的操作,一定要传个函数指针给它,让它回调一下,把当前处理的一些数据传回来,上层应用程序才好处理或者在界面上显示,否则就会给用户一种假死的感觉,很不舒服。
      

  4.   

    在DLL过程中加doevents就可以响应"在vb程序窗口中点击command按钮要求在文本框显示该变量"
      

  5.   

    dll 我无法修改的。只能在vb主程序里面想办法。结帐,大家请到
    http://community.csdn.net/Expert/topic/4362/4362561.xml?temp=1.253909E-02
    继续讨论谢谢了