如何从另一个函数调用属于类成员的函数?

时间:2015-03-12 12:08:09

标签: c++ mfc

所以我有以下内容:

INT CMainFrm::load(Cstring path)
{

}

extern "C"
{
   EXPORT void fileLoad(CString filePath)
   {
      CMainFrm *cmf = new CMainFrm();
      cmf->load(filePath);
   }
}

两者都位于mainfrm.cpp。

从pll调用

fileLoad()并且工作正常。 当我尝试从load()内部调用fileload()时,它会给我一个未处理的异常...我也尝试使用CMainFrm的实例调用它,但结果是一样的。关于如何正确地做到这一点的任何建议?

2 个答案:

答案 0 :(得分:1)

您需要调用已存在的CMainFrm对象。 (它是在程序启动时创建的。)MFC提供了一个全局函数,您可以调用该函数来获取指向此主窗口的指针:AfxGetMainWnd()。您可以将返回的值转换为CMainFrm *并使用它来调用load。

答案 1 :(得分:0)

您必须为动态分配/创建的MFC类(Create)调用CWnd,否则您的m_hWnd将无效并且您的窗口未创建。
很可能你会得到一个例外。