只有dll,没有lib,知道如何使用LoadLibrary来调用函数,但是里面的类应该怎么调用呢?

解决方案 »

  1.   

    没办法,除非自己逆一份class声明出来。成员的大小,位置都要一致。
      

  2.   

    狸猫换太子.
    假设a.dll里面导出class A. 需要使用这个class A, 就必需要知道A的原型.用A的原型制作一个什么也不做的"MFC扩展dll",并且名字也是a.dll.这样生成这个a.dll的时候,会生成可用的a.lib.使用这个a.lib,就可以按平时的习惯来编译调用class A的项目了.而调用的时候,用真正a.dll替换我们自己的a.dll,这样就可以"以真乱假"了,呵呵.
      

  3.   

    1.你想导出类a,在dll中另外创建a的基类b,
    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;
    }
      

  4.   

    http://www.codeproject.com/KB/DLL/classesexportedusingLL.aspx
      

  5.   


    感觉上是没有什么问题,这个跟2楼得方法差不多吧,都是重新搞一份class A的声明副本~
      

  6.   


    就是通过多态,通过class b导出class a的指针吧,在外部必须重新定义一次class b,这就跟2、3楼讲的类似了。这样的话,class a中所有的方法都要在在b中声明成虚函数,否则没法通过class b调用了