C++ derleme hatası

228522

Kilopat
Katılım
8 Eylül 2018
Mesajlar
1.381
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:

[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:ata;
using namespace System:rawing;

/// <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:rawing::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:rawing::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:rawing::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:rawing::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
    22,9 KB · Görüntüleme: 126
  • MicrosoftYardimSite.PNG
    86,8 KB · Görüntüleme: 151
Çö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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…