调用dll类中的函数?

sunyanbiao_12 2004-04-09 07:17:19
我有一个dll,想调用其中的函数,dll是普通的win32写的,不是MFC,里面有好几个类,我想调用类中的某个函数,或是将这个函数的代码导出来,没有.lib和.h文件,怎样实现,分不够还可以再给。
...全文
79 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
babam 2004-04-11
  • 打赏
  • 举报
回复
我的问题是怎样把它的这个函数的整个代码都都导出来

这个要求高了点!干脆反汇编好了
sunyanbiao_12 2004-04-11
  • 打赏
  • 举报
回复
用Depends能看见它的参数,这个函数我也能调用,不过一调用就产生错误中断,我想可能是函数内的变量赋直,我没有分配空间引起的,我的问题是怎样把它的这个函数的整个代码都都导出来。
windfighter 2004-04-10
  • 打赏
  • 举报
回复
将代码导出来????除非你用反汇编吧~~

你只知道导出有这个函数,但是不知道函数得参数,是没有用得~
sunyanbiao_12 2004-04-10
  • 打赏
  • 举报
回复
DLL中到出了这个类,我能用Depends看见,我早试过LoadLibrary,不行,导出了一些非常难懂的汇编代码,我知道这些汇编代码是不是这个函数的,有没有什么工具将代码导出???
vcforever 2004-04-09
  • 打赏
  • 举报
回复
你的DLL中有没有导出这个类呢?
如果没有导出的话,你是调用不了的!

没有.h和.lib的话你可以使用显式加载DLL的方法
首先用LoadLibrary()函数加载这个DLL,然后用GetProcAddress取得导出函数的地址,把这个地址赋给函数指针,使用这个函数指针来调用导出函数,使用完之后要调用FreeLibrary函数来释放这个DLL!

可以参考以下伪代码

HINSTANCE hInst = LoadLibrary("User32.DLL");
if(hInst)
{ //定义函数指针
typedef 导出函数的返回类型 (WINAPI *MYFUNC)(导出函数参数);
MYFUNC fun = NULL;
//取得导出函数的地址,并赋给函数指针
fun=(MYFUNC)GetProcAddress(hInst, "导出函数名称");
if(fun)
{//使用函数指针
fun(函数参数);
}
FreeLibrary(hInst);释放DLL
}
Wenxy1 2004-04-09
  • 打赏
  • 举报
回复
显式加载DLL。
loadLibrary();
查一下MSDN吧。

15,471

社区成员

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

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