请问:我在void CUsbDownDlg::OnOK()中写了如下代码:
m_szDestDirect = ((CMainFrame*)AfxGetApp())->m_chDisk;
提示的错误是:
error C2065: 'CMainFrame' : undeclared identifier
error C2059: syntax error : ')'
查找了一下说没有加#include "MainFrm.h",后来加入#include "MainFrm.h"以后提示的错误是:
 error C2143: syntax error : missing ';' before '*'
error C2501: 'CMakeWindow' : missing storage-class or type specifiers
 error C2501: 'm_pMakeWnd' : missing storage-class or type specifiers
error C2061: syntax error : identifier 'CGraphic'
有人说#include "MainFrm.h"的顺序也有说道,但是我将#include "MainFrm.h"位置放在其他头文件的前前后后都不行,请知情者赐教,不胜感激。

解决方案 »

  1.   

    你必然有一些超前引用了
    看看
    http://www.vckbase.com/bbs/prime/viewprime.asp?id=431
      

  2.   

    说另一个问题
    m_szDestDirect = ((CMainFrame*)AfxGetApp())->m_chDisk; 
    就算编译通过,你这个写法也是不对的,AfxGetApp()得到的是App类指针,并不是主框架指针。
    m_szDestDirect = ((CMainFrame*)(AfxGetApp()->m_pMainWnd))->m_chDisk; 
      

  3.   

    把你的CUsbDownDlg类的cpp文件的头文件包含代码贴出来看一下。
      

  4.   

    头文件是:
    #include "stdafx.h"
    #include "touchexplorer.h"
    #include "UsbDownDlg.h"
    #include <stdio.h>
    #include "folderdlg.h"
    #include <dbt.h> 
    #include <process.h> 
    #include "MainFrm.h"