您好,我在一个MFC DLL中建立了一个对话框类,当用MFC EXE 调用此对话框时不会出现问题,但是当我向MFC DLL 中添加了一些对话框的消息事件后,再调用此DLL ,
运行时就会出现 应用程序错误消息框:"0x7c938fea" 指令引用的0x00000010内存。该内存不能为writen.
调试时会出现:First-chance exception :0xC0000005:Access Violation
请问有没有相关资料,或者您也可以告诉我如何将一个MFC 对话框应用程序转换为MFC DLL ,谢谢。

解决方案 »

  1.   

    调试呗
    以dll工程为主工程,设置外部调用程序、参数、工作路径等
      

  2.   

    重建一个MFC DLL 工程,把以前的类以及对话框等资源复用一下不就行了?
      

  3.   

    回复:ouyh12345
    我设置了 debug 菜单下的exception对话框,把 access violation异常的action 改为 stop always ,
    但是程序停下的地方,我看不懂,是汇编,我也不知道从哪里来到这里的。
    我主要是想将一个现成的MFC 对话框应用程序转换为MFC DLL,不过在往对话框类添加事件时出现这个问题,不添加事件时则不会出现这个问题,请问您有资料给我看吗,谢谢。
      

  4.   

    回复:piaoying12 
    东西是我以前做的,不是别人的,哈哈
    回复:ruibin1984 
    我用您的方法添加了类文件,可是经过运行,还是刚才我描述的问题,您难道以前这样添加对话框类,没出现类似问题?
    回复:ouyh12345
    无法调式,根本无法进入EXT程序,我在以下函数都设置了断点:
    CCallXXApp::CCallXXApp()
    {
    }
    CCallXXApp theApp;
    BOOL CCallXXApp::InitInstance()
    可是程序都没有运行到,谢谢。
      

  5.   

    回复:ouyh12345 
    无法调式,根本无法进入EXE程序,我在以下函数都设置了断点: 
    CCallXXApp::CCallXXApp() 


    CCallXXApp theApp; 
    BOOL CCallXXApp::InitInstance() 
    可是程序都没有运行到,谢谢。
      

  6.   

    我碰过这样的问题,就是不知道你的情况跟我的一样不我的问题是:DLL里的ID值跟exe里的ID有相同的(拷贝RC过来的就一样了),会导致运行错误。给你参考下,嘻嘻!
      

  7.   

    类重用时,在类试图中,类上单击右键,选择——Add To Gallery  ,会把类以及和该类相关的对话框等资源一并导出成*.ocx文件。DLL工程中不需要***App——这个类
      

  8.   

    回复ddzz2001:
    这不可能呀,我试过只载入对话框,并生成它的类后,通过DLL导出接口是可以导出的。同时我刚才也试了您所说的方法,把IDOK 和 IDR_MAINFRAME 的名称都改了,可是还是前面我所说的那个错误,谢谢。
      

  9.   

    我认为问题主要在添加头文件上面,我一旦给我的DLL程序添加了头文件,马上就会出现那个AV异常,
    大伙可以教教我怎样能克服吗,谢谢啦。
      

  10.   

    呵呵 我也碰到过!
    貌似是cpp文件中的InitInstance函数的问题!
    DLL貌似不用实例化吧
    把这个函数注释掉OK 
    试试!
    如果对了可要加分阿!
    呵呵!我猜的!
      

  11.   

    回复piaoying12:
    哪里的InitInstance函数,EXE还是DLL,我DLL中没有这个函数,EXE中删除了之后还是出错。请再帮帮我,谢谢啦。
      

  12.   

    不过常规DLL中真的没有InitInstance,那是我加上去的,怎么办?
      

  13.   

    你建立MFC DLL中的扩展DLL,这样才能够在DLL中响应消息映射,你试试吧,我曾经也遇到这样的问题,就这样解决了
      

  14.   

    不要InitInstance函数不行,直接退出程序了。