Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



chybí konstruktor ?

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: chybí konstruktor ?

Autor: JiriValerian

20:09:27 31.03.2009

[color=#008000]pomoc_zdarma Napsal:
-------------------------------------------------------
> Programujeme v jazycích C++ s Managed Extensions a
> C++/CLI
> http://download.microsoft.com/download/3/5/9/35997
> e6f-13d3-489b-b6ea-cb8b964858ee/Prirucka_programuj
> eme_C_CLI.zip
>
> ta druhá příručka zjevně neprošla korekturou. U
> Microsoftu se mluví asi čezky. :-))[/color]

Z toho si nic nedělejte i v knihách, které korekturou prošly se někdy vyskytují chyby.
Když je to zdarma tak víte co se říká "darovanému koni na zuby nehleď" ;).
Jinak po technické stránce je to zpracováno poměrně slušně, takže se nějaké drobné
chybky dají přehlédnout ;).

Citovat příspěvek

 

Re: chybí konstruktor ?

Autor: pomoc_zdarma

13:05:30 31.03.2009

[cite]
Musíš si uvědomit, že když píšeš Windows Form program tak nepíšeš > v čistém C++, ale v C++/CLI a i když se uvádí, že je to rozšíření > C++ tak ve skutečnosti to do standardu C++ přijato nebylo a je to oddělená norma, která má řadu specifik. Mrkni na pár odkazů.

C++/CLI Language Specification Standard
http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf

Programujeme v jazycích C++ s Managed Extensions a C++/CLI
http://download.microsoft.com/download/3/5/9/35997e6f-13d3-489b-b6ea-cb8b964858ee/Prirucka_programujeme_C_CLI.zip
[/cite]

ta druhá příručka zjevně neprošla korekturou. U Microsoftu se mluví asi čezky. :-))

Citovat příspěvek

 

Re: chybí konstruktor ?

Autor: C++/CLI není čisté C++

22:46:19 30.03.2009

JerryDotaz Napsal:
-------------------------------------------------------
> ...ještě jeden problém....ono to
> funguje...zdánlivě, ale nefunguje Designer,
> protože ten musí mít na prvním místě třídu
> automaticky generovanou "designerem".
> A když tam dám tu svoji ... nefunguje to
> Takže zase nic. :-(

Pokud to neuděláte tak jak to vyžaduje Designer nebude Vám Designer fungovat. Tím jste si sám odpověděl a dál není co řešit.

Pokud nemáte nejnovější verzi Visual C++ 2008 případně nejnovější verzi opravného balíku SP1 pro Visual C++ 2008, tak aktualizujte. Pokud to nepomůže a chcete to řešit za každou cenu, tak to zkuste přes placenou technickou podporu viz odkaz.

Technická podpora pro Microsoft Visual Studio 2008
http://support.microsoft.com/oas/default.aspx?Gprid=12913

Lepší rady se tady pro daný účel už asi nedočkáte.

Citovat příspěvek

 

Re: chybí konstruktor ?

Autor: JerryDotaz

19:34:07 30.03.2009

...ještě jeden problém....ono to funguje...zdánlivě, ale nefunguje Designer, protože ten musí mít na prvním místě třídu automaticky generovanou "designerem".
A když tam dám tu svoji ... nefunguje to
Takže zase nic. :-(

Citovat příspěvek

 

Re: chybí konstruktor ?

Autor: C++/CLI není čisté C++

20:41:23 28.03.2009

JerryDotaz Napsal:
-------------------------------------------------------
> No jo funguje to.
>
> to vůbec nechápu proč to funguje?
> Jak to že to funguje zrovna takhle?
> Ono záleží na pořadí tříd v header souborech?
> Aha....
> Kde se dočtu jak to má fungovat? A proč to funguje
> zrovna tak jak to funguje?
>
> (Připadám si jako v roce 1989 když sem se dozvěděl
> že dynamický stringový pole v TurboBasicu lze
> zrušit jenom v proceduře kde bylo vytvořený.
> Prostě chaos. Ať žije assembler.)

Musíš si uvědomit, že když píšeš Windows Form program tak nepíšeš v čistém C++, ale v C++/CLI a i když se uvádí, že je to rozšíření C++ tak ve skutečnosti to do standardu C++ přijato nebylo a je to oddělená norma, která má řadu specifik. Mrkni na pár odkazů.

C++/CLI Language Specification Standard
[url]http://download.microsoft.com/download/9/9/c/99c65bcd-ac66-482e-8dc1-0e14cd1670cd/C++-CLI%20Standard.pdf[/url]

Programujeme v jazycích C++ s Managed Extensions a C++/CLI
http://download.microsoft.com/download/3/5/9/35997e6f-13d3-489b-b6ea-cb8b964858ee/Prirucka_programujeme_C_CLI.zip

Citovat příspěvek

 

Re: chybí konstruktor ?

Autor: JerryDotaz

20:27:03 28.03.2009

No jo funguje to. :-)

to vůbec nechápu proč to funguje?
Jak to že to funguje zrovna takhle?
Ono záleží na pořadí tříd v header souborech? Aha....
Kde se dočtu jak to má fungovat? A proč to funguje zrovna tak jak to funguje?


(Připadám si jako v roce 1989 když sem se dozvěděl že dynamický stringový pole v TurboBasicu lze zrušit jenom v proceduře kde bylo vytvořený. Prostě chaos.
Ať žije assembler.)

:) :( :D

Citovat příspěvek

 

Re: chybí konstruktor ?

Autor: gtom

17:13:23 28.03.2009

Vyskusaj:

Vo form1.h

Namiesto:
ref class SData;

Uz dat priamo co mas nizsie:
ref class SData : public System::Object
{
public:
SData() {};
}; // public ref class SourceData : public System::Object

...

Citovat příspěvek

 

chybí konstruktor ?

Autor: JerryDotaz

21:51:34 27.03.2009

Ahoj,

mám program v MC++(Windows Form) a hlásí mi to "no appropriate default constructor available". Pouze jsem na formulář umístil button a z obslužné procesury buttonu
chci volat konstruktor mojí třídy....a...... nefunguje to :-)
Asi mám něco špatně :-)

Chyba je na řádku:

CLRW2::SData^ ptrSData = gcnew SData();

v metodě

System::Void button1_Click

Default construktor je v

ref class SData : public System::Object

Tak nevim v čem je problém.




=============================================================
CLRW2.CPP
=============================================================

// CLRW2.cpp : main project file.

#include "stdafx.h"
#include "Form1.h"

using namespace CLRW2;

[STAThreadAttribute]
int main(array ^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;
}


=============================================================
Form1.h
=============================================================

#pragma once


namespace CLRW2 {

ref class SData;

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 for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
///

public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}

protected:
///
/// Clean up any resources being used.
///

~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:

private:
///
/// Required designer variable.
///

System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///

void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(342, 176);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(98, 94);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(478, 310);
this->Controls->Add(this->button1);
this->Name = L"Form1";
this->Text = L"Form1";
this->ResumeLayout(false);

}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
CLRW2::SData^ ptrSData = gcnew SData();
}
};

ref class SData : public System::Object
{

public:
SData() {};

}; // public ref class SourceData : public System::Object


}

/// Summary for Form1 /// /// WARNING: If you change the name of this class, you will need to change the /// 'Resource File Name' property for the managed resource compiler tool /// associated with all .resx files this class depends on. Otherwise, /// the designers will not be able to interact properly with localized /// resources associated with this form. /// public ref class Form1 : public System::Windows::Forms::Form { public: Form1(void) { InitializeComponent(); // //TODO: Add the constructor code here // } protected: /// /// Clean up any resources being used. /// ~Form1() { if (components) { delete components; } } private: System::Windows::Forms::Button^ button1; protected: private: /// /// Required designer variable. /// System::ComponentModel::Container ^components; #pragma region Windows Form Designer generated code /// /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// void InitializeComponent(void) { this->button1 = (gcnew System::Windows::Forms::Button()); this->SuspendLayout(); // // button1 // this->button1->Location = System::Drawing::Point(342, 176); this->button1->Name = L"button1"; this->button1->Size = System::Drawing::Size(98, 94); this->button1->TabIndex = 0; this->button1->Text = L"button1"; this->button1->UseVisualStyleBackColor = true; this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click); // // Form1 // this->AutoScaleDimensions = System::Drawing::SizeF(6, 13); this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font; this->ClientSize = System::Drawing::Size(478, 310); this->Controls->Add(this->button1); this->Name = L"Form1"; this->Text = L"Form1"; this->ResumeLayout(false); } #pragma endregion private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) { CLRW2::SData^ ptrSData = gcnew SData(); } }; ref class SData : public System::Object { public: SData() {}; }; // public ref class SourceData : public System::Object }

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: