#include <Windows.h>
#include <stdio.h>
main()
{typedef VOID (*MYPROC)(); 
MYPROC ProcAdd;  HINSTANCE in=LoadLibrary("link.dll");
ProcAdd= (MYPROC)GetProcAddress(in,"c");
if (NULL != ProcAdd) {printf("d");
}
 else
 {
 ProcAdd();
 
 }
}
DLL:
#include <stdio.h>
 
extern 
__declspec (dllexport) c(){printf("ok in dllexport");}

解决方案 »

  1.   

    有本事
    说出
    原因来看谁高笑
    别溜了
    就你 cMymfc
      

  2.   

    你看你的程序
    如果函数指针procAdd为空,则通过这个指针去调用函数
    你这不是搞笑骂
      

  3.   

    #include <Windows.h>
    #include <stdio.h>
    main()
    {typedef VOID (WINAPI*MYPROC)(); 
    MYPROC ProcAdd=NULL;  HINSTANCE in2=LoadLibrary("link.dll");

    ProcAdd= (MYPROC)GetProcAddress(in2,"c");if (NULL != ProcAdd) { ProcAdd();
    }
     else
     {
    printf("d");
     
     }
    }
    算你很
    现在问题是为什么ProcAdd为NULL为啥取不到值高手对此都束手无策了,所以不要往简单了想
      

  4.   

    包证link.dll和你的exe在同一目录先
      

  5.   

    extern "C" __declspec(dllexport) void c() {...}
    .
    .
    .
    typedef void (*MYPROC)(); 
    .
    .
    .
      

  6.   

    好象是VC编译后改名了. 你可以用DEF定义来不让它改, 
    或是用#pragma comment(linker,"")开关来保持原名.
    现在很少人在研究DLL进程间通讯之类的东西了, 好象
    满大街都是脚本.
      

  7.   

    脚本是什么??
    有dll有啥关系吗?
      

  8.   

    用dumpbin /exports link.dll查看你的函数导出名是否被更改。
    最好用.DEF导出函数,保持导出函数名字不变。
      

  9.   

    要不然你就加
    extern "C" 修饰
      

  10.   

    你用DEPENDS打开DLL看看,应该是导出函数被RENAME了. 要防止VC对函数的Rename. 有两种方法:
    1) 导出的函数前用extern "C" ,强制按C风格导出
    2) 生成.def文件.加到工程里: 在这个文件里定义导出函数:EXPORTS:
     C  @1 PRIVATE方法1对 stdcall 风格的函数无效
      

  11.   

    如何生成.def文件啊
    能讲具体点吗另外 extern "c"当然是用了,否则还叫什么dll
      

  12.   

    #pragma comment(linker,"")
    直接加上这句就可以了吗你用DEPENDS打开DLL看看
    depend是啥,在那?
      

  13.   

    depends 是Visual Stdio自带的工具. 专用于查看可执行文件所依赖的DLL,以及其导入,导出函数表
    生成.def文件很简单, New File, 选择源文件(c/c++),然后起名的时候指定.def后缀就行了
      

  14.   

    HINSTANCE in=LoadLibrary("link.dll");
    ProcAdd=(MYPROC)GetProcAddress(in,"c");单步查看一下in的值,
    in的值%99已经为0x10000000.
    LoadLibrary("link.dll");没把DLL文件Load进来,GetProcAddress自然取不到函数指针啦
      

  15.   

    其实,看到这个DLL,我有点晕,行与行之间的间隔太大了。