紧急求助:关于在mfc的共享dll中使用msflexgrid的问题??我作了个mfc的共享dll,有个对话框,然后在对话框上插入msflexgrid控件,编译都正常,但是mfc作的对话框exe调用dll时没反应。mfc的对话框exe程序中,在对话框上插入msflexgrid控件,显示正常。而且如果dll中用的是默认提供的控件也能正常显示,就是导入的控件不好用。步骤:
1.创建mfc dll工程,默认选共享dll。
2.插入一个对话框,直接右健的弹出菜单中选active控件的插入,或者工程-〉追加到工程-〉加入active控件,在画面上添加msflexgrid。
3.加入dll的接口函数。
4.创建mfc exe对话框工程,默认选项,然后加入调用dll的函数。
5.测试。 导入时一共提示4个文件,
    CMSFlexGrid
    CRowCursor
    COleFont
    CPicture现在的问题是,如果是exe工程加入这个控件,运行正常,只有在dll时才有问题,我怀疑是dll的对话框初始化时,MSFlexGrid没有初始化,或者对话框不知道如何初始化它,但我不知该如何加入初始化MSFlexGrid的代码
我已经试过了,如果去掉msflexgrid就好用,加上cedit等默认控件也好用,请指点下,哪位大虾帮帮忙阿??只要是导入的ACTIVEX控件就有这个问题,看MS的文档说要把OCX控件加入工程,我DLL和EXE都加入了,但就是不好用啊。真的很急用,哪位能解决这个问题,我再开贴子送1000分!!!!

解决方案 »

  1.   

    请问在哪加呢,dll工程里么,是哪个类的哪个函数呢。
      

  2.   

    BUG: AfxOleInit Returns TRUE Without Initializing OLE in a DLL
      

  3.   

    int CGrid::DoModal() 
    {
    return CDialog::DoModal();
    }dll的对话框显示时,调用DoModal居然返回-1,是不是初始化对话框时不能初始化msflexgrid呢?但如何初始化呢?真的很着急,请大家多多指点!!!!!!谢谢
      

  4.   

    在对话框启动前,调用AfxOleInit(),是初始化OLE的API函数
      

  5.   

    BOOL CGrid::OnInitDialog() 
    {
    AfxOleInit(); return TRUE;  
    }
    CGrid是对话框的类,这么用仍然不好用啊。真奇怪,如果用vb,直接参照设定就可以了。vc怎么不行呢,难道在dll工程的对话框里只能用些默认工具箱的控件么?有谁能帮忙实际作一下呢,谢谢.
      

  6.   

    BOOL CMFCDLLApp::InitInstance()    //DLL的APP
    {
    AFX_MANAGE_STATE(AfxGetStaticModuleState());         AfxOleInit(); //这就是初始化COM
      
    if(CWinApp::InitInstance()==false)
    {
    return false;
    }
       
    return true;
    }
      

  7.   

    sohou(大秦之刃) :
        谢谢兄弟了,但还是不好用啊,真是奇怪    如有时间,能帮我做个例子么,不需要内容,只要能把带msflexgrid控件的dll起来就行,谢谢    我的mail:[email protected]
      

  8.   

    AfxOleInit是OLE初始化函数,加到InitInstance里面
      

  9.   

    to fzd999(花差花差) :    是加上了,但是不要用啊,是不是需要import什么的阿,但是怎么做我不知道
      

  10.   

    http://community.csdn.net/Expert/topic/3154/3154592.xml?temp=.120083
    看看这个帖子~~~~