只有dll,没有lib,知道如何使用LoadLibrary来调用函数,但是里面的类应该怎么调用呢?
解决方案 »
- 100分求vc avi转bmp代吗,不够在加,高手请进!!!
- VC6.0写的ATL COM组件,在CB5中注册后运行程序,提示:无法定位程序输入点@$xp$32FltTestlib...
- 短期项目!!!有能力合作的请进
- 在vc++中怎样才能调用别的语言编译平台?
- 急,求一个算法。关于31选7
- 问一个技术上的细节问题:怎样读取ListCtrl中的数据?
- VC6.0技术内幕?
- 怎样理解构造函数和析构函数
- 有关ActiveX和COM的问题,请高手帮忙。
- 在发一次,很菜的问题,POST消息时传送参数(字符串)
- about DeviceIoControl如何获得U盘物理序列号
- CInternetSession,为什么获取不到源网页的html?
假设a.dll里面导出class A. 需要使用这个class A, 就必需要知道A的原型.用A的原型制作一个什么也不做的"MFC扩展dll",并且名字也是a.dll.这样生成这个a.dll的时候,会生成可用的a.lib.使用这个a.lib,就可以按平时的习惯来编译调用class A的项目了.而调用的时候,用真正a.dll替换我们自己的a.dll,这样就可以"以真乱假"了,呵呵.
2.b将所有a的public方法声明为纯虚接口并为导出接口。
3.编写创建b接口的dll导出函数
class b
{
public:
virtual void __stdcall method()=0;
}
class a :public b
{
public:
virtual void __stdcall method();
private:
...
}b* stdcall create()
{
return new a;
}
感觉上是没有什么问题,这个跟2楼得方法差不多吧,都是重新搞一份class A的声明副本~
就是通过多态,通过class b导出class a的指针吧,在外部必须重新定义一次class b,这就跟2、3楼讲的类似了。这样的话,class a中所有的方法都要在在b中声明成虚函数,否则没法通过class b调用了