如题,因为查询函数的输出结果较复杂而且结果数不定,我想使用结构体然后定义指向该结构体的双指针作为函数参数传入,但是我不知道如何在类中声明并使用结构体.我试着在类头文件中直接声明结构体及其定义,编译也成功了,是无法在类中的函数中使用该结构体作为变量类型.
有谁比较熟系DLL的编写吗?请给点意见.

解决方案 »

  1.   

    你可以写的清楚一些吗?
    动态链接库我一般都喜欢写成扩展的。然后用下面形式定义一个输出类供使用。不知道能否给你启发。
    class AFX_EXT_CLASS CMyExport
    {
    public:
        CMyExport(){}
        virtual ~CMyExport(){}
    //数据成员
    };
      

  2.   

    先申明一个类型
    typedef struct _MYTYPE_{
    XXX xx;
    XXX2 xx2;
    }MYTYPE,*PMYTYPE;再在类里任何地方都可以
    MYTYPE mytpe1,*pmytype2;
      

  3.   

    在头文件上面声明啊。或者你自己写个头文件,在里面声明typedef struct _STRUCT_B
    {
     ...
    }_STRUCT_B ;函数里面: 比如  UINT AAA( _STRUCT_B * b ) ;
      

  4.   

    我干脆把我的dll头文件贴上来吧,自认没什么错啊:#ifdef DLLCLASSONE_EXPORTS
    #define DLLCLASSONE_API __declspec(dllexport)
    #else
    #define DLLCLASSONE_API __declspec(dllimport)
    #endif
    #ifdef _DEBUG
    #define debugmessage 1
    #else
    #define debugmessage 0
    #endiftypedef struct namecoderecord{
    int nameid;
    char* username[20];
    }namecoderecord;
    //定义了结构namecoderecordclass DLLCLASSONE_API operateDB {
    public:
    operateDB();
    ~operateDB();
    private:
    int con;private:
    int rt;public: int namecode_age_query(namecoderecord* queryresult, int age);
    //在这个函数参数中使用namecoderecord机构类型,编译失败,总是提醒我namecoderecord未定义,为什么?
    };
      

  5.   

    需要先导出namecoderecord啊;
    用AFX_EXT_CLASS