程序中要调用一个函数BOOL btest(long lType, short FAR* pPara)
主要是第2个参数传递问题,pPara指向的结构体为下面的结构
typedef struct _GRAPHCURVEDATA
{
    int nGroup;
    int nLen[4];
    char chSSIP[4];
    char chport[4];
    char chVersion[4];
}GRAPHCURVEDATA, FAR* LPGRAPHCURVEDATA;请问怎么进行参数传递?是否要进行类型转换? 最好给出具体的代码。

解决方案 »

  1.   

    long lType;
    GRAPHCURVEDATA pPara;btest(lType, (short FAR*)&pPara);
      

  2.   

    感谢cnzdgs,上面直接进行强制转换会不会给内存分配什么的带来不好的影响补充:最好给出结构体的初始化,另外可不可以先定义个short *的结构体,然后把GRAPHCURVEDATA 里面的东西放到short *里面,参数上就直接用后来定义的short *结构体了,如果可以,希望可以帮我写出代码,thanks!
      

  3.   

    vc中最好是用面向对象的方法.在c++中类貌似已经取代了结构体了。最好还是用类定义.然后通过对象或是指针来操作.
      

  4.   

    标准C:struct GRAPHCURVEDATA
    {
        int nGroup; 
        vector<int> nLne;
        string chSSIP; 
        string chport; 
        string chVersion; 
    }
    long lType; 
    GRAPHCURVEDATA pPara;
    btest(lType, pPara);可基于boost::any继续往下扩展void btest(long type,boost::any par)
    {
       GRAPHCURVEDATA pPara = boost::any_cast<GRAPHCURVEDATA>(par);
    }