loadlibrary(); 参数为DLL绝对路径;

解决方案 »

  1.   

    如果楼主用的VS2005或2008的话,直接静态编译,不要用dll,这样只生成一个lib,这个LIB就可以进行设置了.
    动态库和主程序的相对位置,网上讲的也比较少,几乎都没有涉及到解决办法
      

  2.   

    dll 也可以放到system32,或windows目录中
    环境变量也是一种方法,
      

  3.   

    分解为两个dll,一个作为壳loadlibrary另一个
    或者 SetEnvironmentVariable
      

  4.   

    如果你直接library(文件名),系统会先在当前目录下查找dll,也就是说如果你在loadlibrary前用setcurrentdir 来改变当前路径是有效的。如果当前目录下没有找到,他会到%SystemRoot% %SystemRoot%\System32,所以如果你放到windows 目录或system32目录也是有效的如果还没找到就会找所有在%PATH%中定义的路径,所以你可以对当前进程重新设新环境环境,只要在%PATH%中包括的,都可以被引用到你可以让 在CMD下试试SET PATH= 程序所在目录\DLLS;
    程序名现在你的DLL都可以被引用到了
      

  5.   

    还有另外一种方法
    你可以将dll作为一个exe用户自定义资源编译到exe内部
    并通过FindResource,LoadResource,LockResource,.....动态加载该dll
      

  6.   

    用LoadLibrary比较方便些,同意1楼
      

  7.   

    include <stdio.h>
    #include "stdafx.h"typedef double(MULFUC)(double,double);int main()
    {
    HINSTANCE hInstance;
    MULFUC *pFucMul;
    double m_data=10.0;
    hInstance=::LoadLibrary(".\\dll\\test.dll");
    pFucMul=(MULFUC *)::GetProcAddress(hInstance,"RetunA");
    printf("%f",(*pFucMul)(m_data,m_data)); return 0;
    }
      

  8.   

    BOOL SetDllDirectory(
      LPCTSTR lpPathName
    );
      

  9.   

    设置环境变量
    SetEnvironmentVariable
      

  10.   


    显式链接就好办啦,LoadLibrary吧。
      

  11.   

    qrlvls  Ricky 
    分解为两个dll,一个作为壳loadlibrary另一个 
    或者 SetEnvironmentVariable 
     
    同意
     一个作为壳loadlibrary另一个 
      

  12.   

    试试看这个DLL delay加载,然后程序里动态加上路径来loadlibrary一下这个动态库。
      

  13.   

    同意一楼,还是用LoadLibrary,这样方便些。
    其他的设置path和系统变量的方式会使发布变得更复杂。