C++ derleme hatası

228522

Kilopat
Katılım
8 Eylül 2018
Mesajlar
1.382
Makaleler
4
Çözümler
4
Arkadaşlar birkaç gün önce C++ öğrenmeye başladım. Formlu bir proje oluşturuyorum, henüz bu proje için yeterli düzeyde C++ bilmiyorum bu yüzden Youtube gibi sitelerden yardım alıyorum. Bir form projesi oluşturdum fakat bir türlü derleyemiyorum, sürekli derleme hatası veriyor. Visual Studio 2017 kullanıyorum. Derlemeye çalıştığımda bu hatayı alıyorum:
1643927766783.png

[CODE title="Derleme çıktısı"]1>------ Derleme başladı: Proje: graviteamkod, Yapılandırma: Debug x64 ------
1>MyForm.cpp
1>c:\users\enes mirza\source\repos\graviteamkod\graviteamkod\myform.h(114): error C2059: sözdizimi hatası: '.'
1>c:\users\enes mirza\source\repos\graviteamkod\graviteamkod\myform.cpp(9): error C2653: 'GraviTeamKodSihirbazi': bir sınıf veya ad alanı adı değil
1>c:\users\enes mirza\source\repos\graviteamkod\graviteamkod\myform.cpp(9): error C2065: 'MyForm': bildirimi yapılmamış tanımlayıcı
1>c:\users\enes mirza\source\repos\graviteamkod\graviteamkod\myform.cpp(9): warning C4091: '': hiçbir değişken bildirimi yapılmadığında 'System::Windows::Forms::Form' solunda yoksayılır
1>c:\users\enes mirza\source\repos\graviteamkod\graviteamkod\myform.cpp(10): error C2065: 'form': bildirimi yapılmamış tanımlayıcı
1>c:\users\enes mirza\source\repos\graviteamkod\graviteamkod\myform.cpp(6): fatal error C1075: '{': eşleşen hiçbir belirteç bulunamadı
1>"graviteamkod.vcxproj" projesini oluşturma tamamlandı -- BAŞARISIZ OLDU.
========== Oluşturma: 0 başarılı, 1 başarısız, 0 güncel, 0 atlandı ==========[/CODE]
Basit bir form uygulaması yapmak istemiştim sadece, kodlarımı yazıyorum.
[CODE lang="cpp" title="Kodlar"]#include "MyForm.h"
using namespace System;
using namespace System::Windows::Forms;

[STAThreadAttribute]
void Main(array<String^>^ args) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
GraviTeamKodSihirbazi::MyForm ;Form;
Application::Run(%form);[/CODE]
[CODE lang="cpp" title="Form kodları"]#pragma once

namespace graviteamkod {

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>
/// MyForm için özet
/// </summary>
public ref class MyForm : public System::Windows::Forms::Form
{
public:
MyForm(void)
{
InitializeComponent();
//
//TODO: Oluşturucu kodunu buraya ekle
//
}

protected:
/// <summary>
///K
/// </summary>
~MyForm()
{
if (components)
{
delete components;
}
}
public: System::Windows::Forms::Button^ KODLAR;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::ComboBox^ comboBox1;
public:
protected:

private:
/// <summary>
///Gerekli tasarımcı değişkeni
/// </summary>
System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
/// <summary>
/// Tasarımcı desteği için gerekli metot - bu metodun
///içeriğini kod düzenleyici ile değiştirmeyin
/// </summary>
void InitializeComponent(void)
{
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(MyForm::typeid));
this->KODLAR = (gcnew System::Windows::Forms::Button());
this->label1 = (gcnew System::Windows::Forms::Label());
this->label2 = (gcnew System::Windows::Forms::Label());
this->comboBox1 = (gcnew System::Windows::Forms::ComboBox());
this->SuspendLayout();
//
// KODLAR
//
resources->ApplyResources(this->KODLAR, L"KODLAR");
this->KODLAR->Name = L"KODLAR";
this->KODLAR->UseVisualStyleBackColor = true;
this->KODLAR->Click += gcnew System::EventHandler(this, &MyForm::KODLAR_click);
//
// label1
//
resources->ApplyResources(this->label1, L"label1");
this->label1->BackColor = System::Drawing::Color::Transparent;
this->label1->Name = L"label1";
this->label1->Click += gcnew System::EventHandler(this, &MyForm::label1_Click);
//
// label2
//
resources->ApplyResources(this->label2, L"label2");
this->label2->BackColor = System::Drawing::Color::Transparent;
this->label2->Name = L"label2";
//
// comboBox1
//
this->comboBox1->FormattingEnabled = true;
resources->ApplyResources(this->comboBox1, L"comboBox1");
this->comboBox1->Name = L"comboBox1";
this->comboBox1->SelectedIndexChanged += gcnew System::EventHandler(this, &MyForm::comboBox1_SelectedIndexChanged);
//
// MyForm
//
resources->ApplyResources(this, L"$this");
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->BackColor = System::Drawing::Color::White;
this->Controls->Add(this->comboBox1);
this->Controls->Add(this->label2);
this->Controls->Add(this->label1);
this->Controls->Add(this->KODLAR);
this->Cursor = System::Windows::Forms::Cursors::Arrow;
this->ForeColor = System::Drawing::SystemColors::ControlText;
this->Name = L"MyForm";
this->ResumeLayout(false);
this->PerformLayout();

}
#pragma endregion

private: System::Void label1_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void comboBox1_SelectedIndexChanged(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void KODLAR_click(System::Object^ sender, System::EventArgs^ e) {
MessageBox.Show("Kodlar");
}
};
}
[/CODE]
Ayrıca ".exe" dosyasını kendisi oluşturmamış.
 
Kardeşim buradan bak hem sol tarafta listeler var, hata kodlarına göre arayabilirsin, aşağı resim ve linki bırakıyorum:
 

Dosya Ekleri

  • hataKodulari.PNG
    hataKodulari.PNG
    22,9 KB · Görüntüleme: 84
  • MicrosoftYardimSite.PNG
    MicrosoftYardimSite.PNG
    86,8 KB · Görüntüleme: 99
Kardeşim buradan bak hem sol tarafta listeler var, hata kodlarına göre arayabilirsin, aşağı resim ve linki bırakıyorum:
Çözebildiğim kadarını çözdüm ve sadece 2 derleme hatası kaldı. C4091 ve C2275 isimli hatalar, bunları bir türlü çözemiyorum.
 
O kısmı okumama rağmen çözemedim, sanırım fazla gelişmeden bu işe atılmak bir hata idi. Eğer düzeltemez isem C# ve QML öğrenmeye başlayacağım. Şuan kodlar bu şekilde:
[CODE lang="cpp" title="Kodlar"]#include "MyForm.h"
using namespace System;
using namespace System::Windows::Forms;

[STAThreadAttribute]
void Main(array<String^>^ args) {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
graviteamkod::MyForm;
Application::Run(%Form);



}
[/CODE]
Ayrıca hala ".exe" dosyasını bulamadığını söylüyor :(.
 
Bazı tavsiyelerim olacak:
1. Visual Studio 2017 yerine mesela Visual Studio 2022, her zaman en son sürümü kullan. Projelerini belli bi yerde tut asla yerleri değişmesin yoksa hep hata alırsın belki o yüzden bulamıyor executable(.exe) dosyasını.
2. Eğitim aldığın yerler 2019'dan sonraki C++/cli öğreten yerler olsun. Senin şu anda yaptığın C++ değil, C++/cli.
3. Buradan C++ daha güncel öğrenebilirsin: C++ Tutorial
4. Kütüphane olarak bunları katmak lazım: #include<iostream>, #include<MyForm.h>, #include<stdio.h>, #include<stdlib.h>.

Not: C++ doğru yerden öğrenmeye bak, İngilizce kaynak en iyisi. Stackoverflow, W3schools, OpenClassrooms english, Twitter vb... Eğer C++/cli pek bilgin yoksa, önce bir C++ geliştir sonra C++/cli geçiş yaparsın. C++ da zor gelirse, C öğren önce, sonra C++ ve sonra C++/cli. Programlamaya başlangıç için algoritma yazma, uml okuma, sonra yazılım olarak Python ve C güzel bir dildir. C++ için erken olabilir ama pes etme yani yola farklı metodlar ile devam etmek en iyisi.
 

Geri
Yukarı