怎样像使用一般类那样使用dll中导出的类?
比如有个类定义,并在c.dll中导出:
class C1
{
public:
    int Incr(int);
    static unsigned Abs(int);
}
其它程序中使用LoadLibrary加载了该动态库,如何像使用一般类那样使用这个动态库里面的类?
C1 c;
c.Incr(5);
C1::Abs(-123);不要告诉我使用MOV ECX, xxx的方法,这个无法像使用一般类那样使用。
也不要告诉我参考http://www.codeproject.com/kb/dll/classesexportedusingLL.aspx这样类似的方法。

解决方案 »

  1.   

    dll本来就是封装函数的功能嘛!
      

  2.   

    那就在dll中导出两个函数用于创建c++类对象和销毁类对象
    例如:
    extern "C" _declspec(dllexport) Test* CreateTestPtr();
    extern "C" _declspec(dllexport) void DeleteTestPtr(Test*);参看
    http://blog.csdn.net/yysdsyl/archive/2008/07/08/2626033.aspx实例2:演示类的导出和使用动态加载来调用。
    动态dll的类导出:CPPDll2->test.h
      

  3.   

    DLL先得提供对外的函数接口才行啊!
      

  4.   

    DLL导出函数,返回一个类对象指针,然后提供搞一个类的h文件,然后根据指针来调用对应的类成员接口函数等,这是很多系统开发提供给别人的方法
      

  5.   

    loadlibrary方法加载的dll,使用类指针是最简单的调用方式了。即设计模式里面的factory模式。