我是通过输出一个函数GetValue,然后在程序中LoadLibrary 这个dll,执行
GetValue(),例如dll中定义了一个int a=33;   而得到的总是0,而在dll
内部得到的是33,这是怎么回事情?  是不是应用程序不能访问DLL内部变
量?还有什么办法?

解决方案 »

  1.   

    typedef void (* GetValue)();
    HINSTANCE hDll;
    hDll = LoadLibrary("yourdll");
    GetValue getValue= NULL;
    getValue = (GetValue)GetProcAddress(hDll,"GetValue");int  a = getValue();
      

  2.   

    //codetypedef int (* PFun)(void);HINSTANCE hinstLib;hinstLib = LoadLibrary("yourdll");
    if(hinstLib == NULL)
    {
      return ;
    }
    PFun p;
    p = (PFun)GetProcAddress(hinstLib,"GetValue");
    if(p == NULL)
    {
      return ;
    }int a = (*p)();
    //是不是应用程序不能访问DLL内部变量?还有什么办法?//可以访问的。
      

  3.   

    1
    你得到函数 的指针了吗?2
    有使用 def 文件吗?导出函数的配置文件