HINSTANCE hdll;
  typedef int(__stdcall * dllfunc)(int num1,int num2);
  dllfunc add;
  hdll=AfxLoadLibrary("D:\\c++\\function\\Debug\\function.dll");
  add=(dllfunc)::GetProcAddress(hdll,"jia");//这里返回NULL,最终错误为127,找不到指定函数
 //jia是我在function.dll中定义的一个函数为什么会找不到指定函数呢,请高手指点一下

解决方案 »

  1.   

    127错误是找不到指定程序,看看路径是否正确,hdll是否有效。
      

  2.   

    hdll已经返回了正确的句柄,而且jia函数也是对的
    高手指点一下啊
      

  3.   

    检查一下你的DLL中有没有这个函数
      

  4.   

    当然有这个函数,dll文件也是我自己写的
      

  5.   

    extern "c" _declspec(dllexport)加了么
      

  6.   

    导出函数前面加extern "C" 了吗?
      

  7.   

    add=(dllfunc)::GetProcAddress(hdll,"jia");//这里返回NULL,最终错误为127,找不到指定函数
    -------------
     add=(dllfunc)GetProcAddress(hdll,"jia");//这里返回NULL,最终错误为127,找不到指定函数
      

  8.   

    你用Depends看看你的DLL,看那个函数导出来了没?
      

  9.   

    Depends不懂怎么用,看不懂,不过应该是导出来了的
      

  10.   

    add=(dllfunc)::GetProcAddress(hdll,"jia");//这里返回NULL,最终错误为127,找不到指定函数
    -------------
     add=(dllfunc)GetProcAddress(hdll,"jia");//这里返回NULL,最终错误为127,找不到指定函数--
    试了没??
      

  11.   

    也可以使用dumpbin工具查看一下你的dll有没有导出名叫“jia”的函数。
      

  12.   

    dumpbin 是这样显示的
    Dump of file function.dllFile Type: DLL  Section contains the following exports for function.dll           0 characteristics
        462889C0 time date stamp Fri Apr 20 17:37:04 2007
            0.00 version
               1 ordinal base
               5 number of functions
               5 number of names    ordinal hint RVA      name          1    0 0000100F ??0CFunction@@QAE@XZ
              2    1 00001014 ??4CFunction@@QAEAAV0@ABV0@@Z
              3    2 00001005 ?fnFunction@@YAHXZ
              4    3 00001019 ?jia@@YAHHH@Z
              5    4 00014410 ?nFunction@@3HA  Summary        1000 .data
            1000 .idata
            1000 .rdata
            1000 .reloc
           12000 .text
    这样显示,应该是有导出函数吧
      

  13.   

    运行$\Microsoft Visual Studio\Common\Tools\Depends.exe
    打开function.dll查看一下你的dll有没有导出名叫“jia”的函数。
      

  14.   

    0000100F ??0CFunction@@QAE@XZ
    00001014 ??4CFunction@@QAEAAV0@ABV0@@Z
    00001005 ?fnFunction@@YAHXZ
    00001019 ?jia@@YAHHH@Z
    00014410 ?nFunction@@3HA
    这样的
      

  15.   

    很明显你没有加extern "C",或加的不对,经典问题了!
      

  16.   

    应该是你没加extern "C",编译器把你的导出函数名改了!
      

  17.   

    在DLL工程中的导出函数前加上extern "C"
      

  18.   

    缺省情况下因为函数重载的原因,c++编译器需要按照一定的修饰协议来重命名源代码中的函数名称。就像你的dll函数导出列表中显示的一样。对,就像大家所说的,可能是因为你在dll中导出函数“jia”时没有使用extern “C”修饰符告诉编译器按c语言的编译协议编译函数,不要修改函数的名称。如果还有问题,请把你的dll中“jia”函数声明贴出来让大家看看。
      

  19.   

    好像是没有写extern "C" ,谢谢,结贴