急!!———C语言调dll,只有大牛能答

aohayoo 2002-09-28 04:55:23
别人做得一个dll,人已经走了。比如叫:test.dll
我用的时候,就再工程中import test.dll(放再工程得路径下,还要注册test.dll),工程中就自动加入一个类:ITest
我声明ITest得对象: ITest p;
然后敲 p. 后面就列出一些方法,比如method1,我就可以用p.method1使用这个方法了。

现在,我需要用C语句动态载入这个dll,使用它的method1方法。
用API:LoadLibrary和GetProcAddress。但是我无法获得method1得入口地址
用dependency察看test.dll得导出函数,根本没有method1

各位大虾,我该怎么办啊
...全文
78 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
julyclyde 2002-10-08
  • 打赏
  • 举报
回复
你学COM就知道了
superzjx2000 2002-10-08
  • 打赏
  • 举报
回复
a design pattern
aohayoo 2002-10-08
  • 打赏
  • 举报
回复
谢谢大家
我已经用anrxhzh(百宝箱) 的办法实现了,那样比较简单
还有哦,不知道julyclyde(从ASP转向CPP,到处都是P) 老兄说的什么意思啊
julyclyde 2002-09-29
  • 打赏
  • 举报
回复
#import引入的只是CPP库
julyclyde 2002-09-29
  • 打赏
  • 举报
回复
即使有那几个函数,那个DLL也不是当COM来用的
cpp自己有调用方式

试试直接调用ClassFactory
alexxing 2002-09-29
  • 打赏
  • 举报
回复
恐怕 anrxhzh(百宝箱) 的办法是最现实的了
sylmoon 2002-09-29
  • 打赏
  • 举报
回复
VC
anrxhzh 2002-09-29
  • 打赏
  • 举报
回复
我有一个笨方法:
1.用C++编写一个模块访问COM接口;
2.为该C++模块提供一个C调用接口;
3.用C访问该调用接口。

曲线救国,呵呵。
codemon 2002-09-29
  • 打赏
  • 举报
回复
如果test.dll中有以下几个方法就肯定是COM了
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer

有一个方法不知道行不行:

1.从ITest类中得到接口的ID
2.把ITest类改成 struct ITEST,所有的方法改成函数指针
3.用CoGetClassObject得到接口指针,转换成struct ITEST*
4.用函数指针调这个方法


MarsZhangLing 2002-09-28
  • 打赏
  • 举报
回复
用C????
有难度。本来以为很简单的问题。
建议用C++
sogald_2001 2002-09-28
  • 打赏
  • 举报
回复
是一个COM,用VB等自动化工具可以装载,如果没有引出IDispatch接口,你可以用VC等编译器装载,用C很麻烦
julyclyde 2002-09-28
  • 打赏
  • 举报
回复
那不是COM吧?好像只是一个普通的C++ DLL而已
wingfiring 2002-09-28
  • 打赏
  • 举报
回复
用C来调COM阿?有难度哦。
工作量大了,呵呵,小心别犯错:)
geeksky 2002-09-28
  • 打赏
  • 举报
回复
C是不能使用类的,除非你是用C++的编译器
wingfiring 2002-09-28
  • 打赏
  • 举报
回复
他这是一个COM阿。bcb中应该还会给你一个CoClass的类,直接用就可以了。

70,031

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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