高手求救啊:
    VC++6.0开发的UNICODE版本的一个MFC ActiveX,debug版本Rebuild All 时:DllRegisterServer()函数执行不到,但是release版本就可以执行得到。
    还有其他现象:Debug版本时,直接用regsvr32 注册也不行,提示:内存非配失败反问无效,release版本一切OK!
    还有动态库没有缺少,真的不知道哪里问题了!现在急啊!

解决方案 »

  1.   

    Debug版本直接调试啊,调试程序用:regsvr32.exe
      

  2.   

    up,把debug版本attach到regsvr32进程中,进入DllRegisterServer函数,查看出错信息
      

  3.   

    检查Debug,Release工程设置等是否有区别等
    还可以调节debug来调试一下
      

  4.   

    MFC的UNICODE+Debug版本,是不是在VC安装的时候没有安装完整?
    默认VC6安装时候是不装的。
      

  5.   

    It is version of MFCO42D.DLL
    Install a higher RuntimeLibrary of MFC Please
      

  6.   

    Debug版本也选择“Use MFC in a Static Library”
      

  7.   

    Debug版本直接调试啊,调试程序用:regsvr32.exe
    这个要怎么调试啊,不懂?
      

  8.   

    我再把问题说明一下:debug版本生成的*。ocx用regsvr32。exe,直接注册提示:内存分配失败访问无效;release生成的*。ocx用regsvr32。exe注册成功!检查Debug,Release工程设置等是否有区别等 
    还可以调节debug来调试一下
    回复:debug版本没不能注册,控件无法调试!
    MFC的UNICODE+Debug版本,是不是在VC安装的时候没有安装完整? 
    默认VC6安装时候是不装的。
    回复:我安装的是完整版的!Debug版本也选择“Use MFC in a Static Library”
    回复:里面用到很多动态库,所以应该不行,实际试了也真的不行,错误更多!It is version of MFCO42D.DLL 
    Install a higher RuntimeLibrary of MFC Please
    回复:此动态库有添加,还是一样!估计是哪个地方内存除了问题
    回复:这个问题我比较赞同,理由:生成的release版本,运行时,有个地方一直报内存错误!正在解决中!
      

  9.   

    Debug版为啥不能调试啊?直接在工程设置调试属性里设置EXE为regsvr32.exe就可以调试的啊。
      

  10.   

    WaistCoat14:
    Debug版为啥不能调试啊? 
    直接在工程设置调试属性里设置EXE为regsvr32.exe就可以调试的啊
    回复:设置好了,点击调试(F5),直接弹出一个提示对话框,内容大概:
    RegSvr32
    没有指定DLL名。
    用法:regsvr32 [/u][/s][/n]......
    /u - 解除服务器注册
    /s - 无声;不显示消息框
    /i......
    /n......
    注:省略号表示省略部分内容。
      

  11.   

    jiangsheng:没有在调试选项中加命令行参数 
    在命令行参数里面写需要注册的文件名
    回复:那要怎么做啊,不懂啊?
      

  12.   

    从问题出现的时机看,应该是某个全局类或全局变量内存分配的问题
    建议你重点检查全局变量的初始化部分另外,release可以配制成可调试版本,也可以在release下调试http://blog.csdn.net/bobob/archive/2005/12/23/559877.aspx
      

  13.   

    jiangsheng:在调试选项的命令行的下面就是
    回复:是哪个啊,找了半天,硬是没找到?能详细说下吗?
      

  14.   

    问题在下面的链接已经解决:
    http://topic.csdn.net/u/20091207/16/119bc185-c088-493c-a8bd-00713a4dbda1.html