小弟做了个COM的dll,这个dll实现了DllRegisterServer,DllUnregisterServer与DllInstall函数,当我用regsvr32注册组件时,就报"LoadLibrary("D:\文档\程序\C++程序\COM+\ComDll1\debug\ComDll1.dll")"错误。具体情况是这样的:]
(1)原本做好的dll重新编译了下,就不能注册成功,于是我删除原来的注册表引用,但用的还是以前的CLSID,就报"LoadLibrary"错误。
(2)之后,我又创建的其他的工程,使用不同的CLSID,但还是报"LoadLibrary"错误。
是哪里出问题了?

解决方案 »

  1.   

    1)是否修改了DllMain的代码?
    2)换到非中文路径下实施
      

  2.   

    没有修改DllMain的代码。我把dll放在C盘根目录下注册还是不行.
      

  3.   

    还是提示"LoadLibrary"错误?DllRegisterServer直接返回S_OK试试。
      

  4.   

    怎么这么喜欢用中文路径名?专业做软件的不要养成这种习惯从错误看,LoadLibrary就不行了,说明你的dll本身有问题,不一定和COM有关系,也根本没有到调用DllRegisterServer的时候。第一,你要看看具体错误信息是什么?难道程序真的只说LoadLibrary错误没有其他错误?
    第二,要用Depends查查它是不是依赖于什么不存在的库
      

  5.   

    怎么看是否有不存在的库,我看到它依赖于KERNEL32.dll,USER32.DLL,MSVCP80D.DLL,MSVCR80D.DLL。最下面有个窗体显示:
    Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
    是哪里有问题呀?
    从regsvr32.exe弹出的消息框,要怎么知道具体错误信息呢?
      

  6.   

    window 7 的系统 注册com 失败,找不到指定的模块,