Visual Studio 2013 Error LNK1561

di il
6 risposte

Visual Studio 2013 Error LNK1561

Salve,
Mentre programmavo in c++ (Windows Form),ho riscontrato un errore, il quale diceva che non esisteva il file .exe, e di fatti è così! Nella cartella Debug non è presente nulla, vuota completa. Cosi ho cercato su internet e mi hanno consigliato di ricompilare il file, ed è qui che ho incontrato il problema maggiore, mi ha dato l' errore LNK1561 (entry point must be defined). Ho cercato in internet ma niente risposte, solo che nelle impostazioni avanzte del linker si poteva settare.. ma non so cosa inserire! Voi sapete cosa va in quel campo per fare andare il programma ???

PS: è urgente, è per un 9 a scuola !

6 Risposte

  • Re: Visual Studio 2013 Error LNK1561

    Calma ...

    1) che tipo di progetto hai creato esattamente?

    2) quale codice hai scritto?

    3) hai una funzione main ?
  • Re: Visual Studio 2013 Error LNK1561

    oregon ha scritto:


    Calma ...

    1) che tipo di progetto hai creato esattamente?

    2) quale codice hai scritto?

    3) hai una funzione main ?
    1) Ho fatto : FILE -> Nuovo -> Progetto... -> Visual C++ -> CLR -> progetto CLR vuoto ; poi ho aggiunto la Form facendo: PROGETTO -> Aggiungi nuovo elemento... -> UI -> Windows Form.

    2)questo è tutto il MyForm.h :

    #pragma once

    namespace EsercitazioneProva_GiongoDaniele {

    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;

    char tris[3][3] = {{ ' ', ' ', ' ' }, { ' ', ' ', ' ' }, { ' ', ' ', ' ' } };
    typedef enum TBoolen { FALSE, TRUE };

    /// <summary>
    /// Riepilogo per MyForm
    /// </summary>
    public ref class MyForm : public System::Windows::Forms::Form
    {
    public:
    MyForm(void)
    {
    InitializeComponent();
    char tris[3][3] = {{ ' ', ' ', ' ' }, { ' ', ' ', ' ' }, { ' ', ' ', ' ' } };
    textBox1->Text = " ";
    textBox2->Text = " ";
    textBox3->Text = " ";
    textBox4->Text = " ";
    textBox5->Text = " ";
    textBox6->Text = " ";
    textBox7->Text = " ";
    textBox8->Text = " ";
    textBox9->Text = " ";
    }

    protected:
    /// <summary>
    /// Pulire le risorse in uso.
    /// </summary>
    ~MyForm()
    {
    if (components)
    {
    delete components;
    }
    }
    private: System::Windows::Forms::Button^ btnRestart;
    protected:

    protected:
    private: System::Windows::Forms::TextBox^ textBox9;
    private: System::Windows::Forms::TextBox^ textBox8;
    private: System::Windows::Forms::TextBox^ textBox7;
    private: System::Windows::Forms::TextBox^ textBox6;
    private: System::Windows::Forms::TextBox^ textBox5;
    private: System::Windows::Forms::TextBox^ textBox4;
    private: System::Windows::Forms::TextBox^ textBox3;
    private: System::Windows::Forms::TextBox^ textBox2;
    private: System::Windows::Forms::TextBox^ textBox1;

    protected:

    private:
    /// <summary>
    /// Variabile di progettazione necessaria.
    /// </summary>
    System::ComponentModel::Container ^components;

    #pragma region Windows Form Designer generated code
    /// <summary>
    /// Metodo necessario per il supporto della finestra di progettazione. Non modificare
    /// il contenuto del metodo con l'editor di codice.
    /// </summary>
    void InitializeComponent(void)
    {
    this->btnRestart = (gcnew System::Windows::Forms::Button());
    this->textBox9 = (gcnew System::Windows::Forms::TextBox());
    this->textBox8 = (gcnew System::Windows::Forms::TextBox());
    this->textBox7 = (gcnew System::Windows::Forms::TextBox());
    this->textBox6 = (gcnew System::Windows::Forms::TextBox());
    this->textBox5 = (gcnew System::Windows::Forms::TextBox());
    this->textBox4 = (gcnew System::Windows::Forms::TextBox());
    this->textBox3 = (gcnew System::Windows::Forms::TextBox());
    this->textBox2 = (gcnew System::Windows::Forms::TextBox());
    this->textBox1 = (gcnew System::Windows::Forms::TextBox());
    this->SuspendLayout();
    //
    // btnRestart
    //
    this->btnRestart->Location = System::Drawing::Point(12, 246);
    this->btnRestart->Name = L"btnRestart";
    this->btnRestart->Size = System::Drawing::Size(237, 38);
    this->btnRestart->TabIndex = 19;
    this->btnRestart->Text = L"Restart";
    this->btnRestart->UseVisualStyleBackColor = true;
    this->btnRestart->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);
    //
    // textBox9
    //
    this->textBox9->Location = System::Drawing::Point(174, 168);
    this->textBox9->Multiline = true;
    this->textBox9->Name = L"textBox9";
    this->textBox9->ReadOnly = true;
    this->textBox9->Size = System::Drawing::Size(75, 72);
    this->textBox9->TabIndex = 18;
    this->textBox9->Click += gcnew System::EventHandler(this, &MyForm::button9_Click);
    //
    // textBox8
    //
    this->textBox8->Location = System::Drawing::Point(93, 168);
    this->textBox8->Multiline = true;
    this->textBox8->Name = L"textBox8";
    this->textBox8->ReadOnly = true;
    this->textBox8->Size = System::Drawing::Size(75, 72);
    this->textBox8->TabIndex = 17;
    this->textBox8->Click += gcnew System::EventHandler(this, &MyForm::button8_Click);
    //
    // textBox7
    //
    this->textBox7->Location = System::Drawing::Point(12, 168);
    this->textBox7->Multiline = true;
    this->textBox7->Name = L"textBox7";
    this->textBox7->ReadOnly = true;
    this->textBox7->Size = System::Drawing::Size(75, 72);
    this->textBox7->TabIndex = 16;
    this->textBox7->Click += gcnew System::EventHandler(this, &MyForm::button7_Click);
    //
    // textBox6
    //
    this->textBox6->Location = System::Drawing::Point(174, 90);
    this->textBox6->Multiline = true;
    this->textBox6->Name = L"textBox6";
    this->textBox6->ReadOnly = true;
    this->textBox6->Size = System::Drawing::Size(75, 72);
    this->textBox6->TabIndex = 15;
    this->textBox6->Click += gcnew System::EventHandler(this, &MyForm::button6_Click);
    //
    // textBox5
    //
    this->textBox5->Location = System::Drawing::Point(93, 90);
    this->textBox5->Multiline = true;
    this->textBox5->Name = L"textBox5";
    this->textBox5->ReadOnly = true;
    this->textBox5->Size = System::Drawing::Size(75, 72);
    this->textBox5->TabIndex = 14;
    this->textBox5->Click += gcnew System::EventHandler(this, &MyForm::button5_Click);
    //
    // textBox4
    //
    this->textBox4->Location = System::Drawing::Point(12, 90);
    this->textBox4->Multiline = true;
    this->textBox4->Name = L"textBox4";
    this->textBox4->ReadOnly = true;
    this->textBox4->Size = System::Drawing::Size(75, 72);
    this->textBox4->TabIndex = 13;
    this->textBox4->Click += gcnew System::EventHandler(this, &MyForm::button4_Click);
    //
    // textBox3
    //
    this->textBox3->Location = System::Drawing::Point(174, 12);
    this->textBox3->Multiline = true;
    this->textBox3->Name = L"textBox3";
    this->textBox3->ReadOnly = true;
    this->textBox3->Size = System::Drawing::Size(75, 72);
    this->textBox3->TabIndex = 12;
    this->textBox3->Click += gcnew System::EventHandler(this, &MyForm::button3_Click);
    //
    // textBox2
    //
    this->textBox2->Location = System::Drawing::Point(93, 12);
    this->textBox2->Multiline = true;
    this->textBox2->Name = L"textBox2";
    this->textBox2->ReadOnly = true;
    this->textBox2->Size = System::Drawing::Size(75, 72);
    this->textBox2->TabIndex = 11;
    this->textBox2->Click += gcnew System::EventHandler(this, &MyForm::button2_Click);
    //
    // textBox1
    //
    this->textBox1->Location = System::Drawing::Point(12, 12);
    this->textBox1->Multiline = true;
    this->textBox1->Name = L"textBox1";
    this->textBox1->ReadOnly = true;
    this->textBox1->Size = System::Drawing::Size(75, 72);
    this->textBox1->TabIndex = 10;
    this->textBox1->Click += gcnew System::EventHandler(this, &MyForm::button1_Click);
    //
    // MyForm
    //
    this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    this->BackColor = System::Drawing::SystemColors::ButtonHighlight;
    this->ClientSize = System::Drawing::Size(263, 296);
    this->Controls->Add(this->btnRestart);
    this->Controls->Add(this->textBox9);
    this->Controls->Add(this->textBox8);
    this->Controls->Add(this->textBox7);
    this->Controls->Add(this->textBox6);
    this->Controls->Add(this->textBox5);
    this->Controls->Add(this->textBox4);
    this->Controls->Add(this->textBox3);
    this->Controls->Add(this->textBox2);
    this->Controls->Add(this->textBox1);
    this->Name = L"MyForm";
    this->Text = L"Preparazione Verifica";
    this->ResumeLayout(false);
    this->PerformLayout();

    }
    #pragma endregion
    private: System::Void btnRestart_Click(System::Object^ sender, System::EventArgs^ e) {

    for (int i = 0; i < 3; i++)
    {
    for (int j = 0; j < 3; j++)
    {
    tris[j] = ' ';
    }
    }
    textBox1->Text = " ";
    textBox2->Text = " ";
    textBox3->Text = " ";
    textBox4->Text = " ";
    textBox5->Text = " ";
    textBox6->Text = " ";
    textBox7->Text = " ";
    textBox8->Text = " ";
    textBox9->Text = " ";
    }

    bool controllaVincente()
    {
    bool vinto = false;

    for (int i = 0; i < 3 && !vinto; i++)
    {
    if (tris[0] == tris[1] && tris[1] == tris[2] && !vinto)
    {
    if (tris[0] == 'X')
    {
    MessageBox::Show("Ha vinto l'utente");
    vinto = true;
    }
    else if (tris[0] == 'O')
    {
    MessageBox::Show("Ha vinto il PC");
    vinto = true;
    }
    }
    }
    for (int i = 0; i < 3 && !vinto; i++)
    {
    if (tris[0] == tris[1] && tris[1] == tris[2][i] && !vinto)
    {
    if (tris[0][i] == 'X')
    {
    MessageBox::Show("Ha vinto l'utente");
    vinto = true;
    }
    else if (tris[0][i] == 'O')
    {
    MessageBox::Show("Ha vinto il PC");
    vinto = true;
    }
    }
    }

    if (tris[0][0] == tris[1][1] && tris[1][1] == tris[2][2] && !vinto)
    {
    if (tris[1][1] == 'X')
    {
    MessageBox::Show("Ha vinto l'utente");
    vinto = true;
    }
    else if (tris[1][1] == 'O')
    {
    MessageBox::Show("Ha vinto il PC");
    vinto = true;
    }
    }

    if (tris[0][2] == tris[1][1] && tris[1][1] == tris[2][0] && !vinto)
    {
    if (tris[1][1] == 'X')
    {
    MessageBox::Show("Ha vinto l'utente");
    vinto = true;
    }
    else if (tris[1][1] == 'O')
    {
    MessageBox::Show("Ha vinto il PC");
    vinto = true;
    }
    }

    return vinto;
    }

    bool vuoto(int r,int c)
    {
    bool vuoto = false;
    if (tris[r][c] == ' ')
    {
    vuoto = true;
    }
    return vuoto;
    }

    void mossaPC()
    {
    bool esci = false;
    for (int i = 0; i < 3 && !esci; i++)
    {
    for (int j = 0; j < 3 && !esci; j++)
    {
    if (vuoto(i, j))
    {
    tris[i][j] = 'O';
    esci = true;
    }
    }
    }
    }

    private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(0, 0))
    {
    tris[0][0] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(0, 1))
    {
    tris[0][1] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(0, 2))
    {
    tris[0][2] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(1, 0))
    {
    tris[1][0] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(1, 1))
    {
    tris[1][1] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(1, 2))
    {
    tris[1][2] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(2, 0))
    {
    tris[2][0] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button8_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(2, 1))
    {
    tris[2][1] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    private: System::Void button9_Click(System::Object^ sender, System::EventArgs^ e) {
    if (!controllaVincente())
    {
    if (vuoto(2, 2))
    {
    tris[2][2] = 'X';
    textBox1->Text = "X";
    mossaPC();
    }
    MessageBox::Show("C'è gia dentro qualcosa!");
    }
    }
    };
    }


    3) no, non ho una funzione main.

    Grazie per avermi risposto
  • Re: Visual Studio 2013 Error LNK1561

    Allora avrai anche un file di nome MyForm.cpp dove dovresti scrivere
    
    #include "MyForm.h"
    
    using namespace System;
    using namespace System::Windows::Forms;
    
    
    [STAThread]
    void Main(array<String^>^ args)
    {
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false);
    
    	EsercitazioneProva_GiongoDaniele::MyForm form;
    	Application::Run(%form);
    }
    
    Poi devi andare in Progetto -> Proprietà -> Configurazione -> Linker e

    in SubSystem seleziona /SUBSYSTEM:WINDOWS

    e infine, sempre in Linker,

    Advanced -> Entry Point in cui scriverai Main
  • Re: Visual Studio 2013 Error LNK1561

    oregon ha scritto:


    Allora avrai anche un file di nome MyForm.cpp dove dovresti scrivere
    
    #include "MyForm.h"
    
    using namespace System;
    using namespace System::Windows::Forms;
    
    
    [STAThread]
    void Main(array<String^>^ args)
    {
    	Application::EnableVisualStyles();
    	Application::SetCompatibleTextRenderingDefault(false);
    
    	EsercitazioneProva_GiongoDaniele::MyForm form;
    	Application::Run(%form);
    }
    
    Poi devi andare in Progetto -> Proprietà -> Configurazione -> Linker e

    in SubSystem seleziona /SUBSYSTEM:WINDOWS

    e infine, sempre in Linker,

    Advanced -> Entry Point in cui scriverai Main
    ho fatto tutto quello che hai detto... pero facendocompila dice : "Errore 1 error : Element <SubSystem> has an invalid value of "/SUBSYSTEM:WINDOWS".
  • Re: Visual Studio 2013 Error LNK1561

    Non devi scriverlo tu ma selezionare dal menu a tendina la voce

    Windows (/SUBSYSTEM:WINDOWS)
  • Re: Visual Studio 2013 Error LNK1561

    oregon ha scritto:


    Non devi scriverlo tu ma selezionare dal menu a tendina la voce

    Windows (/SUBSYSTEM:WINDOWS)

    Grazie ora funziona!

    Ma gia che ci siamo sai se si puo fare una matrice di TextBox in c++ ? se si sarei grato se me la spiegassi !

    Ancora grazie infinite.
Devi accedere o registrarti per scrivere nel forum
6 risposte