我的com 用vc中的"编译|重建全部"可以注册成功,但用在项目的release目录下用regsvr32.exe aaa.dll却注册失败.(肯定以前没注册过)
错误: 0xc0000005. why?我猜可能是用regsvr32注册时, 没有调用com中的dllregisterServer()函数,
resvr32怎么才能调用com中的dllregisterServer()函数?或用其它什么命令?我想在一台没有vc的机器上测试, 怎么办?

解决方案 »

  1.   

    regsvr32 aaa.dll 如果这样写的话默认的是system32下的aaa.dll,不存在当然出错
    regsvr32 "绝对路径\aaa.dll"这样试试看吧
      

  2.   

    建议用工具注册,省去了手动注册的麻烦和错误。我用的一个工具是在要注册的组件上单击右键,就会有Register/unresister等操作,好方便啊
      

  3.   

    用绝对路径试试vc其实也是用regsvr32的
      

  4.   

    可能你的com中引用的模块在你所要安装的机器上不存在
    所以注册失败
      

  5.   

    注册是dll会被载入进程的地址空间
    并调用dll中的DllRegisterServer
    导致com中的全局变量被初始化
    检查所有隐式调用的dll
    如果缺少任何一个引入的dll
    进程初始化就会失败
    从而导致DllRegisterServer无法执行
    所以regsvr32失败!
      

  6.   

    VC里有专门看OCX的工具.你看看
      

  7.   

    我想问一下知道了缺少的DLL,如何操作呢?如何注册这些DLL呢?
      

  8.   

    把dll放在组件能找到的地方
      

  9.   

    我是这样干的, 在找到dll后, 再执行regsvr32 *.dll, 然后, 系统提示我注册成功。
      

  10.   

    同意蓝天!
    其实不是regsvr32的问题,是控件使用的其他的dll没有找到
      

  11.   


    同意蓝天!
    其实不是regsvr32的问题,是控件使用的其他的dll没有找到这种问题,我也遇到过。
      

  12.   

    先用depends看看
    然后,在用绝对路径注册