最近接手一个项目,在看源码,对其中的代码有些不太理解,求解释//xx.h
#ifdef xxxx
#define xxxx_LIB_API __declspec(dllexport)
#else
#define xxxx_LIB_API __declspec(dllimport)
#endifclass xxxx_LIB_API DeviceLogger {
public:
virtual void Debug(LPCTSTR strMsg) = 0;
virtual void Info(LPCTSTR strInfo) = 0;
virtual void Warn(LPCTSTR strWarn) = 0;
virtual void Error(LPCTSTR strError) = 0;
virtual void Fatal(LPCTSTR strFatal) = 0;
};
.......
还有其他的几个类,类得内容基本上都是类似的virtual前缀的函数和成员等。我的问题是我只发现了xx.h这个头文件,没有实现的文件,并且这里面的几个类没有在其他地方被继承而是直接定义类对象并使用,在源程序的bin目录下发现了几个DLL文件。
问题:
代码中未发现有类似于LoadLibrary等加载DLL操作,是不是哪个地方可以设置下就可以使用了?

解决方案 »

  1.   

    #inluce了头文件,并把lib文件加入,就是隐式加载DLL了,LoadLibrary是显式加载
      

  2.   

    。。我搜了一下 没有发现lib文件引用
      

  3.   

    直接定义类对象并使用
    ----------------------------
    追一下赋值,估计没什么太大意思,就是个log
      

  4.   


    不可能没有lib文件吧,那样的话导出类的引用太麻烦了。
      

  5.   

    我看了下class b :
    public CObject
    {
    public:
    b(void);
    ~b(void);private:
    xxx* dev;
    public:
     //     其他的函数定义
    }在类b的其他函数里,有些就是直接使用dev里面的函数。
      

  6.   

    不可能没有lib文件吧,那样的话导出类的引用太麻烦了。
      

  7.   

    找到LIB文件了,多谢,还有个问题为什么类里面的函数都是virtual的?
      

  8.   

    virtual就是虚函数呗,这个是个接口类,你可以调用就行了。具体的实现类定义了哪些函数,不给你看