我要实现的功能如下:
一开始显示一个窗口frmStart,并播放一段视频,任意点击后,停止播放视频,并启动一个进度窗口frmProgress,当加载100%后,则show出主窗口frmMain。
在frmStart中有一个MediaPlayer9控件
Private Sub wmpStart_Click(ByVal nButton As Integer, ByVal nShiftState As Integer, ByVal fX As Long, ByVal fY As Long)
    Unload Me   <--整个流程从这里开始启动
End Sub  <----运行到这里常常造成程序的崩溃
在frmStart的unload事件中有如下代码:
Private Sub Form_Unload(Cancel As Integer)
    wmpStart.Close
    Me.Hide
    DoEvents
    If m_bIsStart Then
        Load frmProgress
        Unload frmProgress
    End If
End Sub
frmProgress的load事件中有如下代码:
Private Sub Form_Load()
    Show
    DoEvents
    Load frmMain
End Sub
在frmMain的load事件中有如下代码:
Private Sub Form_Load()
    ……
    frmProgress.hide
    DoEvents
    Show
End Sub
有几处奇怪的地方:1.当在frmStart中不播放视频时,程序并不崩溃;2.如果程序直接从frmProgress启动也不会造成崩溃;3.如果单步跟踪的话,程序崩溃的概率小了很多。4.直接编译成一个exe文件后,在2000系统下没有任何错误,能够很好的运行,然而在我机子上运行还是会常常崩溃,我用的是2003的server版本。以上疑问盼高手多多指教!!感激不尽!!

解决方案 »

  1.   

    想请教一个问题,会造成程序崩溃的可能性有哪些,在我的程序中显示的是内存访问非法,不能为read之类的,都快整了我一天了,还是没有进展。如果是用一个简单工程做测试,并不会造成崩溃。真是莫名其妙了。
      

  2.   

    VB6中崩溃肯定是发生了不可预期的严重错误。建议:如果实在找不出什么问题的话,加个on error resume next试试。
    Private Sub wmpStart_Click(ByVal nButton As Integer, ByVal nShiftState As Integer, ByVal fX As Long, ByVal fY As Long)
        Unload Me   <--整个流程从这里开始启动
        On Error Resume Next
    End Sub  <----运行到这里常常造成程序的崩溃
      

  3.   

    cobrastudio(老汉我),谢谢了,问题还是没有得到解决,困扰我一天了,我现在最大的困扰就是根本不知道问题在哪。毫无头绪,再次说声谢谢。
      

  4.   

    to:sworddx(.:RNPA:. Hillinsilence;剑宇潇湘·秋叶原 Reloaded) 
    我有用到这样的代码:
    Debug.Assert lpPrevWndProc = 0
    lpPrevWndProc = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf MyWindowProc)在我的窗口函数中也没做什么东西,主要是屏蔽标题栏双击
    另外即便我注释了上面的代码,程序还是崩溃。
      

  5.   

    我觉得很可疑的就是frmMain窗体的加载代码,因为frmStart和frmProgress窗体的代码都是少的可怜,看来看去实在看不出什么名堂来,可是如果直接从frmProgress窗体启动的话,程序就不会崩溃。难道我真要命绝于此,还望各位高手兄救我一命啊!!
      

  6.   

    按照你的说法,也有可能是控件版本问题
    把MediaPlayer降低一个级别试试