DLL 导出类中一个接口函数int GetMemberCount() {return m_Count//成员变量}

解决方案 »

  1.   

    建议不要把类成员变量放在导出类中,你最好再重新封装一层,导出类中以函数接口的形式(Get,Set的方式)访问你的类成员
      

  2.   

    dll需要导出整个类吗?
    如果不需要,导出生成和销毁类的函数,然后在功能函数里添加一个int参数,在函数里转换成类的指针
    如:
    int GetMemberCount(int class_ptr) 
    {
      class_a *ptr = (class_a *)class_ptr;
      return class_ptr->m_Count//成员变量
    }
      

  3.   

    你想加个 inline 还是咋的?
      

  4.   

    函数接口的形式(Get,Set的方式)访问你的类成员//这句话的代码不知道怎么写呀!
      

  5.   

    比如:
    # ifdef _HMIEXPORT_CLASS_EXT
    # define HMIEXPORT __declspec(dllexport)
    # else
    # define HMIEXPORT __declspec(dllimport)
    # endifclass CTestManager;
    class  HMIEXPORT CTestManagerEx
    {
       public:
         CTestManagerEx(){m_pTestManager = new CTestManager};
         ~CTestManagerEx();
    public:
         int GetXXX(){return m_pTestManager->xxx;};//函数实现建议放到cpp中去
         void SetXXX(int iParam){m_pTestManager->xxx = iParam;};//函数实现建议放到cpp中去
    private:
    CTestManager *m_pTestManager;
    }导出类CTestManagerEx中只暴露一个CTestManager 指针而已,其它参数都通过Get,Set的方式访问,这样导出的类,就算你dll这个类有改动,只要原有的函数都在,你编译后只需要把dll替换就可以了,别人引用你的dll无需重新编译。
      

  6.   


    修改一下,这个辅助导出类, 封装了楼主需要的功能,但是最好 类提供get,set,导出类也提供相应的get,set,虽然繁琐一些。
    可以提供c接口去封装了这个c++类
      

  7.   

    http://bbs.csdn.net/topics/390373843 看下