各位老师:
    我用ATL写了一个dll,编译正常,可是注册时出现以下错误,
LoadLibrary("***.dll")faild , GetLastError returns 0x0000001,
这个问题已经快把我搞疯了,请问是什么原因,谢谢!

解决方案 »

  1.   

    是不是你的DLL里面使用了其他DLL,如果是这样,需要将其他DLL一起拷贝才可。
      

  2.   

    你手动注册如果成功(REGSVR32  PATH+xxx.DLL),那就是DllRegisterServer出问题了!
      

  3.   

    zfive5(醉马Ⅴ) :
       能否解释一下“功能错误。”ultralzl(自然) :
       没有用其他DLL。 wangweixing2000(星) :
       机动、手动注册都不成功。 weirdy(软件设计师) :
       是用的VC6,我想不是它的问题,我重装了VC6还是用样的问题。
      

  4.   

    各位老师:
        有谁对函数“LoadLibrary”的工作过程比较清楚,还请不吝赐教。
      

  5.   

    各位老师:
        问题已经找到,是我用的库gdiplus.dll有问题,库中的GetLinearPoints()函数不可用,
     不知道是否我下载的库有BUG,不知大家遇到过没有,怎么解决的?大家有看法请尽快发表,
     我要结贴了。
      

  6.   

    把 gdiplus.dll 放到 你的dll目录下
      

  7.   

    你的gdiplus.dll与编译使用的.h/.lib声明不一致,只能去寻找一致的dll文件
      

  8.   

    newkey007(无限天空):
       不是DLL文件位置的问题,其它内容使用基本正常。littlegang(Gang):
       我的DLL库和LIB/H/CPP文件是从网上下载的(是在同一个包里的),有谁
    知道那有正常的库文件下载。   另外,我还是认为是gdiplus.dll的问题,因为我用VC6自带的库文件查看
    功能打不开该DLL文件。
      

  9.   

    我认为就如newkey007(无限天空)所说,楼主有兴趣可以试下这个帖子中的方法能否成功http://expert.csdn.net/Expert/topic/2713/2713639.xml?temp=.257107
      

  10.   

    lop5712(LOP) :
        我认为不是DLL文件位置的问题,我在程序中注释掉使用GetLinearPoints的
    语句后,编译、注册、运行就一切正常了,再加上就要出现以上错误。
      

  11.   

    GetLinearPoints是那个DLL中被引用的唯一的函数吗?
    如果是被唯一引用的函数,则依然很有可能是DLL文件的问题,就是因为引用了那个DLL中的函数,而楼主应该是隐式连接那个DLL的,因此在这个组件被加载时,必须先加载那个DLL(LoadLibrary实现的),而如果在当前路径或路径变量定义的路径下找不到那个DLL,就会发生装载失败,模块未找到的提示。请尝试一下将那个DLL放在system目录下或工程目录下或输出目录(Debug目录)下。
      

  12.   

    lop5712(LOP) :
        GetLinearPoints不是DLL中被引用的唯一的函数,还用了其它的函数,而且使用正常。