只有动态库文件,没有lib与头文件 如何编写调用 C++写的动态库DLL里的函数

yhl10000 2004-08-05 10:20:27
只有动态库文件,没有lib与头文件 如何编写调用 C++写的动态库DLL里的函数
如文件 gdlb.dll有函数 GetData
如何调用GetData,没有 gdlb.lib和gdlb.h文件。
...全文
746 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
vivid0816 2004-08-10
  • 打赏
  • 举报
回复
就是
dxjwolf(啸月孤狼) 说的能解决

调用分显式调用、隐失调用和延时调用,隐式调用需要.LIB .H .DLL
显式调用只需要.DLL
你可以在文件中
HINSTANCE hDLL = ::LoadLibrary("你所加载的DLL文件")
typedef HRESULT (函数的定义)
再使用GetProcAddress获得文件的指针
再调用文件中的函数
最后使用FREELIBRARY释放文件指针就好了
sharkhuang 2004-08-05
  • 打赏
  • 举报
回复
LoadLibrary
GetProcAddress

dll的2种用法之一
lemon520 2004-08-05
  • 打赏
  • 举报
回复
来晚了
typedef int (*P) (int);//假设你要调用的函数原形如此
HINSTANCE hDll=LoadLibrary("YourDll.dll");
P pfn=GetProcAddress(hDll,"函数名");
int result=(*pfn)(99);
FreeLibrary(hDll);
freefalcon 2004-08-05
  • 打赏
  • 举报
回复
没有头文件,你知道函数原型吗?
如果知道的话,可以通过动态加载dll来实现

如下:
typdef char* (*GetData)(void); //假设GetData的函数原型如此
HINSTANCE hInst = LoadLibrary("your.dll"); //加载dll
GetData pf = (GetData)GetProcAddress(hInst, "GetData"); //获得地址
pf(); // 调用
FreeLibrary(hInst); //释放
wildhorseych 2004-08-05
  • 打赏
  • 举报
回复
dynamicly invoke the function if you know the func name and param needed inadvance!
freefalcon 2004-08-05
  • 打赏
  • 举报
回复
类的结构都不知道,你怎么使用它呢?

没有办法
yhl10000 2004-08-05
  • 打赏
  • 举报
回复
DLL中有类
已知道函数原形,但DLL中有类,函数参数也有类,不知道类的结构(没有Lib及.h文件),如何调用。
如知道了如下类的函数:
int CData::GetData( CGridData & Input, int * outdata );
如何调用。
妖怪 2004-08-05
  • 打赏
  • 举报
回复
调用分显式调用、隐失调用和延时调用,隐式调用需要.LIB .H .DLL
显式调用只需要.DLL
你可以在文件中
HINSTANCE hDLL = ::LoadLibrary("你所加载的DLL文件")
typedef HRESULT (函数的定义)
再使用GetProcAddress获得文件的指针
再调用文件中的函数
最后使用FREELIBRARY释放文件指针就好了
walkonthesky 2004-08-05
  • 打赏
  • 举报
回复
没有办法
瞎撞了

64,647

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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