VC++ illegal reference to non-static member hatası ne demek ?

Başlatan magnetron, 28 Ağustos 2014, 16:22:54

magnetron

merhaba forum,

VC++8 de bir form oluşturdum
formun üstüne de bir textbox koydum

fakat aşağıdaki kodu compile edince

main () {
............
Form1::textBox1="hello";
..............

illegal reference to non-static member 'receiving::Form1::textBox1'

bu hatayı veriyor

Form1.textBox1="hello";

bu şekilde yazarsam da

receiving.cpp(48) : error C2143: syntax error : missing ';' before '.'

bu hatayı veriyor

nasıl yapıcam ?

teşekkür

Gökhan BEKEN

textBox1="hello"; şeklinde değil de textBox1.text="hello"; şeklinde deneyin.
Başına "form1." yazmanıza gerek yok.
Özel mesaj okumuyorum, lütfen göndermeyin.

magnetron

#include "stdafx.h"
#include "stdafx.h"
#include "Windows.h"
#include "string.h"
#include "winuser.h"
#pragma comment( lib, "user32" )
#include "stdafx.h"
#include "Form1.h"

using namespace receiving;

[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());



	  textBox1.text="hello";
	return 0;
}


hocam kod bu

sizin dediğiniz gibi yaptım
o zaman da bu hataları verdi

1>.\receiving.cpp(48) : error C2065: 'textBox1' : undeclared identifier
1>.\receiving.cpp(48) : error C2228: left of '.text' must have class/struct/union

mecbur olmasam hiç bulaşmıyacam bu C++ ya lanet olsun

Gökhan BEKEN

Bir düzeltme yapayım textBox1.text demiştim ama c# tan alışkanlık olduğu için yanlış yazmışım. C++ ile form uygulaması yapıp denemedim ama saırım textBox1->text="hello"; şeklinde olacak.
Ayrıca siz kodu direkt main'in içine yazmışsınız, Form'un load fonksiyonuna  textBox1->text="hello"; yazın mesela. Ya da MessageBox::Show("deneme"); felan yazın.
Özel mesaj okumuyorum, lütfen göndermeyin.

magnetron

      Application::Run(gcnew Form1());
        Form1^ xyz = xyz;
		  xyz->textBox1->Text="hello";
 	while(1) Application::DoEvents();

	return 0;
}


meftun hocam bir tek siz cevap veriyorsunuz teşekkür ederim

şimdi gelen error mesajlarından anladığım
Form1 nesnesi yaratılıyor ve ben Form1 nesnesine xyz isimli bir pointer tanımlayıp
o pointerin textbox metoduna "hello" yazdırmam gerekiyor

böyle yapınca kodu derliyor, çalıştırınca çalışıyor ama
textbox boş kalıyor "hello" yazmıyor

ne tavsiye ediyorsunuz ?

Klein

Form1_tipi  *xyz = Form1;
         xyz->TextBox->Text = "ssssssss";

İşaretçi tanımı C ve C++ da böyle. Senin derleyici ^ ile nasıl işaretçi tanımladı tam da anlamış değilim.

magnetron

hocam C++ öğrenmek istemiyorum
sadece VC++8 de çalışan bir programdan bir kısım data çekip ( VC++8 olmak zorunda )
onu kendi gömülü hardware' ime aktarmak istiyorum

birine bakıp çıkacaktım yani  :)

Bu Form1 nesnesine nasıl "hello" yazdırıcam onu söyleyin yeter
Form1 in üstüne textbox'umu koydum yukardaki kod compile oluyor ama çalıştırınca textbox boş kalıyor

Klein hocam ^ bu işaret bir nesneye pointer tanımlanırken kullanılıyor bildiğim kadar


magnetron

hocam bilmediğim çok şey var

bana önerebileceğiniz Türkçe kitap var mı ?

( tercüme değil ama - tercümelerden bişey anlaşılmıyor )

Visual C++' yı öğrenebileceğim ?