GetProcAddress()为什么总返回NULL值?

senjury 2003-02-23 07:30:22
//build a DLL project
//fun.cpp
#include <iostream.h>

extern "C" __declspec(dllexport) void fun(void)
{
cout<<"This is fun()."<<endl;
}

//building a test project
//main.cpp
#include <windows.h>
#include <iostream.h>
typedef void (*funDll)(void);

void main(void)
{
HINSTANCE funLib;
funDll pfun;
funLib = LoadLibrary("FunDll");
if (funLib == NULL)
{
cout<<"LoadLibrary(\"FunDll\") error!"<<endl;
}
else
{
pfun = (funDll)GetProcAddress(funLib, "fun");
if (pfun == NULL)
{
cout<<"GetProcAddress(funLib, \"fun\") error!"<<endl;
}
else
{
pfun();
}
FreeLibrary(funLib);
}
}

结果总是:LoadLibrary("FunDll") error!
哪里错了啊?
...全文
211 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhwu3721 2003-02-24
  • 打赏
  • 举报
回复
對,要有擴展名.
funLib = LoadLibrary("Fun.dll");
netxy 2003-02-24
  • 打赏
  • 举报
回复
好像DLL的扩展名是要的.
aben456 2003-02-24
  • 打赏
  • 举报
回复
把DLL放在当前目录
halk 2003-02-24
  • 打赏
  • 举报
回复
楼主的问题很可能是路径问题,请将路径写全,如:“C:\\Program files\\mylibrary.dll”
halk 2003-02-24
  • 打赏
  • 举报
回复
扩展名可以省略,默认的是“.dll”。如果你要load的文件没有扩展名,可以用一个"."指定,如:"mylibrary."
功名半纸 2003-02-24
  • 打赏
  • 举报
回复
带扩展名 !!!!!!!!!!!!!
ensionhower 2003-02-24
  • 打赏
  • 举报
回复
扩展名的呀,FUN.DLL。还有保证Fun.dll路径正确。
chenjiming 2003-02-23
  • 打赏
  • 举报
回复
在VC集成环境下,应用程序的路径不在debug和release中,而是在dsp文件所在目录。多半是dll文件路径不对,你把dll考到dsp所在目录,或是指定绝对路径,或是复制到path环境变量中的路径
demetry 2003-02-23
  • 打赏
  • 举报
回复
同意
IceboundRock 2003-02-23
  • 打赏
  • 举报
回复
funLib = LoadLibrary("FunDll");
试试把文件绝对路径做参数,还有扩展名
everandforever 2003-02-23
  • 打赏
  • 举报
回复
你连LIB都没有LOAD成功,更何况LOAD PROC啊?
程序找不到dll.路径什么的不对.

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧