電子書籍の厳選無料作品が豊富!

下記にあるようなプログラムをコンパイルしたら、下記のエラーになりました。
どこに問題があるのでしょうか?

「error C2227: '->SetValueXyzwpr2' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。」

//frrjif.h
class _DataPosReg : public COleDispatchDriver
{

// Operations
public:

BOOL SetValueXyzwpr2(long Index, float X, float Y, float Z, float W, float P, float R, float E1, float E2, float E3, short C1, short C2, short C3, short C4, short C5, short C6, short C7, short UF, short UT);

};

//frrjiftestDlg.h
#include "frrjif.h"
class CFrrjiftestDlg : public CDialog
{
public:
CFrrjiftestDlg(CWnd* pParent = NULL);// standard constructor
virtual ~CFrrjiftestDlg();

protected:
virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV support
//}}AFX_VIRTUAL

// Implementation
_Core *pCore;
_DataPosRegXyzwpr *pPosRegXyzwpr;
_DataSysVarPos *pSysVarPos;
};

//frrjiftestDlg.cpp
#include "frrjiftestDlg.h"
void MyDataHandler(sFrameOfData* FrameOfData)
{
CFrrjiftestDlg::pSysVarPos->SetValueXyzwpr2(X,Y,Z,W,P,R,E1,E2,E3,C1,C2,C3,C4,C5,C6,C7,UF,UT);
//↑ここでコンパイルエラー
//↑error C2227: '->SetValueXyzwpr2' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。

}

void CFrrjiftestDlg::OnBnClickedButton1()
{

Cortex_SetDataHandlerFunc(MyDataHandler);

}

A 回答 (1件)

CFrrjiftestDlg::pSysVarPos->SetValueXyzwpr2(X,Y,Z,W,P,R,E1,E2,E3,C1,C2,C3,C4,C5,C6,C7,UF,UT);


//↑ここでコンパイルエラー
//↑error C2227: '->SetValueXyzwpr2' : 左側がクラス、構造体、共用体、ジェネリック型へのポインタではありません。

ええと、かなりキツい物言いですまないけども、
これがわからんなら基本ができてない。

メソッド呼ぶにはレシーバ(そのメソッドの持ち主:インスタンス)が必要。

この回答への補足

//.cpp
void MyDataHandler(sFrameOfData* FrameOfData)
{
CFrrjiftestDlg obj;

obj.sndrobot();
}

void CFrrjiftestDlg::sndrobot()
{
pSysVarPos->SetValueXyzwpr2(X,Y,Z,W,P,R,E1,E2,E3,C1,C2,C3,C4,C5,C6,C7,UF,UT);
}

//.h
class CFrrjiftestDlg : public CDialog
{
public:
void sndrobot();
}

この方法でコンパイルエラーは回避できました。

補足日時:2011/07/16 18:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報