2012-01-05 844 views
0

これはなぜコンパイルされないのか分かりません。私はここでどのような誤りを犯していますか?私は例で見つけたこのコードをコンパイルしようとしていますが、私のコンパイラは、より厳密な設定を持っている必要があります。コードは、ウィンドウのフォームを開いてテキストを表示するだけです。エラー:「式にはクラス型が必要です」C++/CLI

using namespace System; 
using namespace System::Windows::Forms; 
using namespace System::Drawing; 

public ref class MyForm : Form 
{ 
public: 

MyForm() 
    { 
    Text = "Windows Forms Demo"; 
    } 

void Main() 
    { 
    Application.Run (gcnew MyForm()); 
    } 

protected: 
void OnPaint (PaintEventArgs e) 
    { 

    e.Graphics.DrawString ("Hello, world", Font, 
     gcnew SolidBrush (Color.Black), ClientRectangle); 
    } 
} 
+0

「e.Graphics.DrawString」のエラーが表示されます。eが強調表示され、Expressionにはクラスタイプが指定されている必要があります。 –

+0

コンパイラは、行情報と詳細なエラーメッセージを表示します。コンパイラですべての警告を有効にしてください。 –

答えて

0

overrideとアクセス方法の構文が正しくありません。

virtual void OnPaint(PaintEventArgs^ e) override 
    { 
    Form::OnPaint(e); 
    e->Graphics->DrawString("Hello, world", gcnew System::Drawing::Font("Arial",20), gcnew SolidBrush (Color::Black), ClientRectangle); 
    } 

void main()を使用しないでください。

0
[STAThreadAttribute] 
int main() 
{ 
    Application::Run(gcnew Form1()); 
    return 0; 
} 

エラーがクラスである、Fontとなります。呼び出しには、フォント、つまりFontインスタンスが必要です。

関連する問題