c++ - VC++ 2010 : Error with Show open dialog after conversion from VC6++

标签 c++ windows file mfc dialog

将 VC++ 6 项目转换为 VC++ 2010 后,我修复了所有错误,但其中一个我找不到解决方案。我在构建时收到的错误:

错误 1 ​​错误 C2440:“static_cast”:无法从“void (__thiscall CUploadDlg::* )(void)”转换为“LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)”

错误代码:

BEGIN_MESSAGE_MAP(CUploadDlg, CDialog)
    //{{AFX_MSG_MAP(CUploadDlg)
    ON_MESSAGE(PARSE_DB_MSG, ParseUserDb)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

调用方法代码:

void CUploadDlg::ParseUserDb()
{
    m_parse_db.ShowWindow(SW_SHOW);    
    m_block_numbers = getBlockNumber();    
    Sleep(1200);    
//  CMainFrame *pFrame = (CMainFrame *)AfxGetMainWnd();    
//  if(pFrame)  pFrame->UpdateDataBase(m_Path);    
    m_parse_finish.ShowWindow(SW_SHOW);    
//  Sleep(500);    
//  pFrame->SaveDataBase();//    
//  CDialog::OnCancel();
    //return 0L;
}

项目类型:应用程序,在静态库中使用 MFC

最佳答案

查看消息破解者期望的MFC 消息映射函数原型(prototype)。 ON_MESSAGE() 是一个通用包装器,除了基本的 msgID(这是它如何分发到 map )之外,它不知道如何破解给定的消息。其余参数必须传递给消息处理程序,因此它希望 ParseUserDb 看起来像这样:

LRESULT CUploadDialog::ParseUserDb(WPARAM wParam, LPARAM lParam)
{
// your code; don't forget a return value, likely 0L;
};

关于c++ - VC++ 2010 : Error with Show open dialog after conversion from VC6++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12674261/

相关文章:

asp.net - 在 UpdatePanel 中使用 ASP.NET FileUpload 控件时出现问题?

android - 在重命名的文件中获取真实的 MIME 类型

c++ - 将文件的元素加载到 C++ 中的二维数组中

c++ - 是否可以定义原始类型的隐式转换行为? C++

c++ - 如何测试 Audio Session 的相等性

c++ - 如何反转存储在内存地址的位?

windows - 通过cmd在ftp连接中使用变量

windows - 如何在 Windows 上的 Ubuntu 上的 bash 上运行 eclipse?

windows - Scala - SBT 设置,bash : syntax error near `=~'

python - 如何正确地将元组列表写入 .txt 文件?