扩展的.dll
烦恼!

解决方案 »

  1.   

    to hyamw:
     那还得在xp上装vc啊,机器是别人的.
    比如有a.dll,b.dlla.dll 在我的2000上可以加载,在一个同事的xp上也能加载.
    b.dll 在我的2000上可以加载,在他的xp上却加载失败.下面是代码 HMODULE hDllModule=LoadLibrary(strFilePath); if (hDllModule==NULL)
    {
    strTip="路径为";
    strTip+=strFilePath;
    strTip+="的DLL 加载失败";
    AfxMessageBox(strTip); return;
    }
      

  2.   

    可能不是2000与XP的问题,是电脑中是否有VC的问题,你在一台没有VC的2000下运行试试呢?
      

  3.   

    上次曾遇到过在2000上加载失败,loadlibrary返回的是空值! 
    后来一查才知道是2000的bug,打上server packet 4就可以了。
    参考:http://support.microsoft.com/default.aspx?scid=kb;zh-cn;327194
        Windows 2000 Service Pack 4 中修复的错误的列表
    里面就有:
    324673 LoadLibrary() 函数找不到 DLL 名称 
    不知xp是否也有bug
      

  4.   

    这就没碰到过了。检查路径有没有问题?或者可能是 tonyswe(tong) 说得那样。
      

  5.   

    to icehear:
     对啊,我上面说了,是扩展的,MFC扩展DLL.
      

  6.   

    broown
     就是静态连接.
      

  7.   

    to oyljerry:
     没有MFC环境,就loadlibrary返回空值吗?
    可是有的dll是可以取得句柄的而不报错误的.
      

  8.   

    用了MFC的DLL需要静态连接,否则就需要将mfc42.dll、mfc42d.dll、mfc42u.dll、mfc42ud.dll(可能还有其他的)等复制到系统目录下。我不喜欢mfc,主要就是这个原因。
      

  9.   

    我也遇到了同样的问题,在我的XP上能加载,在同事的XP上就是加载不了,至今未果
      

  10.   

    to iceheart
    你用什么,就可以不用关心是否能在客户系统上运行起来了??
      

  11.   

    明白了!如果是共享链接,就会报错 找不到什么mfc*.dll如果是静态链接,就会      loadlibrary返回空值解决方法:
    不管是静态链接还是共享链接,我的程序都必须把
    MSVCRTD.DLL,MFCO42D.DLL,MFCD42D.DLL,MFC42D.DLL全部拷到运行系统上.可能静态链接只需要其中的几个,但是我还是全部拷贝了.
    to gaoshengqiang
    你肯定也是这个问题吧.
      

  12.   

    回复人: wd_6532(无心) ( ) 信誉:99 
    to iceheart
    你用什么,就可以不用关心是否能在客户系统上运行起来了??-----------------------我用SDK方式,创建一个win32 Dynamic-Link Library,自己添代码