现在做了一个库,封装了一个类,希望在调用这个类的某个函数时,弹出一个对话框来获得用户的输入信息。

解决方案 »

  1.   

    最好使用MFC,否则困难多多。
      

  2.   

    这个很容易吗!!例如:
    BOOL SkinSetting( EMUPROFILE *m_pSysProfile  )
    {
    g_pProfile = m_pSysProfile; CSkinSetting  skin;
    BMPSETTING bmpsetting; theEmuSys.GetBmpProfile(&bmpsetting, sizeof(bmpsetting));              
    skin.SetData(&bmpsetting); if (skin.DoModal() != IDOK)
    return FALSE; skin.GetData(&bmpsetting);
    theEmuSys.SetBmpProfile( &bmpsetting, sizeof(bmpsetting));
    return bModify;
    }
    SkinSetting(EMUPROFILE *m_pSysProfile  )是dll输出的一个函数,你加载dll以后就可以调
    用了,m_pSysProfile是参数,你可以把你要在这个对话框里输入的数据放到这个参数里,当这个函数执行完了你就会得到你要的数据啦
      

  3.   

    用sdk道理是一样的,只不过那些对话框、编辑框就得自己Creat了,呵呵就是多写一些代码了,那些代码也是都差不多copy一下修改几个参数就行了。
      

  4.   

    DWORD WINAPI ShowDlg()
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());
    CYourDlg dlg;
    dlg.DoModal();
    }
    在DLL中导出这个函数就可以了。
      

  5.   

    to : shenming123(bluesky) 我就是这么做的,可以为什么执行到dlg.DoModal();总是出错呢?出现的错误信息为   unhandled exception in Text.exe (MFC42D.dll): 0xC0000005: Access Violation
      

  6.   

    SDK:
    1. 在DllMain()中保存instance到全局变量g_hInstance中
    2. 创建对话框资源
    3. 在输出函数中
          模式对话框:DialogBox(g_hInstance, "对话框资源名", hParentWnd, DialogProc);
          非模式:CreateBox(g_hInstance, "对话框资源名", hParentWnd, DialogProc);
                  ShowWindow(..);UpdateWindow(..);
    MFC:
    1. 创建对话框资源
    2. 用ClassWizard创建对应的对话框类CMyDialog
    3. 在输出函数中
          模式:CMyDialog dlg; dlg.DoModal();
          非模式:CMyDialog dlg; dlg.Create(IDD_DIALOG, NULL);dlg.ShowWindow(SW_SHOW);dlg.UpdateWindow();
      

  7.   

    dll倒出对话框就是问题多多,就是资源问题!