所以我正在编写一个Windows窗体应用程序,因此当我运行它时会抛出一个不应该抛出的错误。它抛出“语法错误:丢失;使用前”
我尝试在前一行放一个,但它没有用。
文件问题是这个
// Rock Paper Scisors.cpp : main project file.
#include "stdafx.h"
#include "Form1.h"
using namespace RockPaperScisors;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Create the main window and run it
Application::Run(gcnew Form1());
return 0;
}}
stdafx.h是MS Visual C ++ Express的一部分,无论如何,Form1.h的代码可以在这个pastebin中找到(不想填满整个堆栈溢出页面。)http://pastebin.com/324mpCps
所有帮助都得到了赞赏!
答案 0 :(得分:1)
你刚刚与括号混淆了。
首先,删除Rock Paper Scisors.cpp文件中的最后一个'}'。最后,这就是正确的Form1.h文件的外观:
#include<time.h>
#include<stdlib.h>
#include<stdio.h>
#include<ctime>
#include<cstdlib>
#pragma once
namespace RockPaperScisors {
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ Rock;
protected:
private: System::Windows::Forms::Button^ Paper;
private: System::Windows::Forms::Button^ cis;
private: System::Windows::Forms::TextBox^ ComBox;
private: System::Windows::Forms::TextBox^ WonBox;
private: System::Windows::Forms::Label^ CompLabel;
private: System::Windows::Forms::Label^ WonLabel;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->Rock = (gcnew System::Windows::Forms::Button());
this->Paper = (gcnew System::Windows::Forms::Button());
this->cis = (gcnew System::Windows::Forms::Button());
this->ComBox = (gcnew System::Windows::Forms::TextBox());
this->WonBox = (gcnew System::Windows::Forms::TextBox());
this->CompLabel = (gcnew System::Windows::Forms::Label());
this->WonLabel = (gcnew System::Windows::Forms::Label());
this->SuspendLayout();
//
// Rock
//
this->Rock->Location = System::Drawing::Point(13, 33);
this->Rock->Name = L"Rock";
this->Rock->Size = System::Drawing::Size(75, 23);
this->Rock->TabIndex = 0;
this->Rock->Text = L"Rock";
this->Rock->UseVisualStyleBackColor = true;
this->Rock->Click += gcnew System::EventHandler(this, &Form1::Rock_Click);
//
// Paper
//
this->Paper->Location = System::Drawing::Point(94, 33);
this->Paper->Name = L"Paper";
this->Paper->Size = System::Drawing::Size(75, 23);
this->Paper->TabIndex = 0;
this->Paper->Text = L"Paper";
this->Paper->UseVisualStyleBackColor = true;
this->Paper->Click += gcnew System::EventHandler(this, &Form1::Paper_Click);
//
// cis
//
this->cis->Location = System::Drawing::Point(175, 33);
this->cis->Name = L"cis";
this->cis->Size = System::Drawing::Size(75, 23);
this->cis->TabIndex = 0;
this->cis->Text = L"Scisors";
this->cis->UseVisualStyleBackColor = true;
this->cis->Click += gcnew System::EventHandler(this, &Form1::cis_Click);
//
// ComBox
//
this->ComBox->Location = System::Drawing::Point(83, 127);
this->ComBox->Name = L"ComBox";
this->ComBox->Size = System::Drawing::Size(100, 20);
this->ComBox->TabIndex = 1;
//
// WonBox
//
this->WonBox->Location = System::Drawing::Point(83, 190);
this->WonBox->Name = L"WonBox";
this->WonBox->Size = System::Drawing::Size(100, 20);
this->WonBox->TabIndex = 2;
//
// CompLabel
//
this->CompLabel->AutoSize = true;
this->CompLabel->Location = System::Drawing::Point(91, 95);
this->CompLabel->Name = L"CompLabel";
this->CompLabel->Size = System::Drawing::Size(88, 13);
this->CompLabel->TabIndex = 3;
this->CompLabel->Text = L"Computer Choice";
//
// WonLabel
//
this->WonLabel->AutoSize = true;
this->WonLabel->Location = System::Drawing::Point(91, 163);
this->WonLabel->Name = L"WonLabel";
this->WonLabel->Size = System::Drawing::Size(62, 13);
this->WonLabel->TabIndex = 3;
this->WonLabel->Text = L"Who Won\?";
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(284, 262);
this->Controls->Add(this->WonLabel);
this->Controls->Add(this->CompLabel);
this->Controls->Add(this->WonBox);
this->Controls->Add(this->ComBox);
this->Controls->Add(this->cis);
this->Controls->Add(this->Paper);
this->Controls->Add(this->Rock);
this->Name = L"Form1";
this->Text = L"Form1";
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
int userChoice, compChoice;
private: System::Void Rock_Click(System::Object^ sender, System::EventArgs^ e)
{
ComBox->Text="";
userChoice=1;
compChoice=rand()%3+1;
switch(compChoice)
{
case 1:
ComBox->Text="Rock";
WonBox->Text="You Tied";
break;
case 2:
ComBox->Text="Paper";
WonBox->Text="You Lost";
break;
case 3:
ComBox->Text="Scisors";
WonBox->Text="You Won";
break;
}
}
private: System::Void Paper_Click(System::Object^ sender, System::EventArgs^ e) {
ComBox->Text="";
userChoice=2;
compChoice=rand()%3+1;
switch(compChoice){
case 1:
ComBox->Text="Rock";
WonBox->Text="You Won";
break;
case 2:
ComBox->Text="Paper";
WonBox->Text="You Tied";
break;
case 3:
ComBox->Text="Scisors";
WonBox->Text="You Lost!";
break;
}
}
private: System::Void cis_Click(System::Object^ sender, System::EventArgs^ e) {
ComBox->Text="";
userChoice=3;
compChoice=rand()%3+1;
switch(compChoice){
case 1:
ComBox->Text="Rock";
WonBox->Text="You Lost";
break;
case 2:
ComBox->Text="Paper";
WonBox->Text="You Won";
break;
case 3:
ComBox->Text="Scisors";
WonBox->Text="You Tied!";
break;
}
} //The culprit!
};
}
我只在末尾附近添加了一个括号,关闭了课程中的最后一个方法。由于Visual Studio 2010及更早版本不支持C ++ / CLI中的IntelliSense,因此在此类项目中可能会出现错误。