临时搞c++问个调dll

vcshcn 2014-07-19 03:24:04
我手头只有一个dll和一个api文档。文档写
Pcomm=createComm();
Pcomm->init();
我通过loadlibrary和getprocaddress调成了createcomm,但成员函数怎么调?能调么?如果可以怎么调,需要什么?麻烦详细点,偶搞java的
...全文
223 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
robertbo 2014-07-21
  • 打赏
  • 举报
回复
显示调用,根据参数不同定义不一样,大体流程是这样,可以试试: typedef void DLLINIT(); DLLINIT * pDLLINIT; LoadLibrary pDLLINIT=(DLLINIT*)GetProcAddress(hInstance, "init");
  • 打赏
  • 举报
回复
取不到函数地址 又没头文件 你该找Dll接口方要一个.h去
CrossWhite 2014-07-21
  • 打赏
  • 举报
回复
隐式调用,需要lib,以及头文件 显示调用,你需要拿到函数的地址
vcshcn 2014-07-20
  • 打赏
  • 举报
回复
类里的函数没导出,也能getprocaddress么,哪有例子,第一个参数怎写
foruok 2014-07-19
  • 打赏
  • 举报
回复
有两种方式: 1.需要动态库内实现的类对应的头文件,包含它,就像 Java 的 import 一样 2.知道PComm的原型的话,可以自己定义出接口来(使用函数指针表示),然后使用 GetProcAddress 一个一个取到PComm的成员函数指针,赋值给你定义的接口,然后就可以调用。 如果能找到头文件,还是用第一种方法。第二种太繁琐,而且如果你都知道了 PComm 的原型,想必也能拿到头文件了。 博文决赛,投我一票,谢谢。
我看你有戏 2014-07-19
  • 打赏
  • 举报
回复

65,187

社区成员

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

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