シンタックスエラーとは

[戻る]
UG 2001/08/16(木) 01:03:28
 はじめまして。UGと申します。VCをはじめてまだ1週間くらいですので、まだ、コンソールアプリで基本的なことを勉強中です。
 ところで、本を購入して勉強しているのですが、それに記載されているコードを打ち込んでみたところエラーになります。
 プロジェクトの種類はWin32 ConsoleApplicationで、ConsoleOut.hとUserClass.cppからなっています。

(ConsoleOut.h)

#include<windows.h>
#include<wincon.h>

class CConScr
{
private:
    HANDLE m_hCon;
    CONSOLE_SCREEN_BUFFER_INFO m_csbInfo;

public:
    CConScr(){
        m_hCon=GetStdHandle(STD_OUTPUT_HADLE);
    }

    void Out(SHORT x,SHORT y,LPCTSTR str)
    {
        COORD coord=(x,y);
        DWORD dw;
        WriteConsoleOutputCharacter(m_hCon,str,strlen(str),coord,&dw);
    }

    void GetConsoleScreenRect(Rect *pRc)
    {
        GetConsoleScreenBufferInfo(m_hCon,&m_csbInfo);

        pRc->left=0;
        pRc->top=0;
        pRc->right=m_csbInfo.dwSize.X-1;
        pRc->bottom=m_csbInfo.dwSize.Y-1;
    }
};

(UserClass.cpp)

#include"ConsoleOut.h"

void main()
{
    CConScr cs;
    RECT rc;
    char str[]="サンプル";

    cs.GetConsoleScreenRect(&rc);
    cs.Out((SHORT)(rc.left+rc.right-strlen(str))/2,(SHORT)(rc.top+rc.bottom)/2,str);
}

 これをビルドすると、ConsoleOut.hの void GetConsoleScreenRect(Rect *pRc) という行で「error C2061: 構文エラー : 識別子 'Rect' がシンタックスエラーを起こしました。」となり、UserClass.cppのcs.GetConsoleScreenRect(&rc); という行で
「error C2660: 'GetConsoleScreenRect' : 関数が不正な 1 個の実引数をともなって呼び出されました。」となります。このエラーの原因がわかりません。教えてください。よろしくお願いします。
 環境はWindows2000、VC6です。

Bun 2001/08/16(木) 08:10:59
> void GetConsoleScreenRect(Rect *pRc)

プロトタイプと関数本体の()内の引数の型 Rect を RECT にしましょう。

UG 2001/08/16(木) 22:18:11
[[解決]]
 解決しました。Bunさんありがとうございました。

古いスレッドには追加発言できません。