Anonymní profil Luu – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Luu – Programujte.comAnonymní profil Luu – Programujte.com

 

Příspěvky odeslané z IP adresy 147.229.197.–

.NET › přepis kodu z C# do VC++
25. 2. 2013   #172059

XmlSerializer^ s = gcnew XmlSerializer (array::typeid);

tenhle zpusob mi neprojde debugem,

přidu public mam, ono to funguje, kod projde a program nespadne, akorad mi to neuloží data. A když to krokuji tak mi to zahlasi chybu :

XmlSerializer^ s = gcnew XmlSerializer (array<TridaDat^>::typeid);

v proměnné s

chyba:

+ NamespaceList 0x026f83c0 { _defaultCapacity= _items= _size= ...} System::Collections::ArrayList^

pro jistotu celý program:

http://leteckaposta.cz/437977355

Moc děkuji za rady.

.NET › přepis kodu z C# do VC++
7. 12. 2012   #168313

#2 ingiraxo
jo to mi povidej, je to do školy proto to přepisuju, jinak bych to nechal ve zlatem C# :)

.NET › přepis kodu z C# do VC++
7. 12. 2012   #168288

Dobry den,

 potřeboval bych poradit jak mám zapsat tento kod v jazyce VC++

 zde je napsany v C# :

XmlSerializer serializer = new XmlSerializer(typeof(TridaDat[]));

mam ho zapsany takto, prekladač mi to sice veme, ale při běhu programu to na tomto řádku spadne:

XmlSerializer^ s = gcnew XmlSerializer (array<TridaDat^>::typeid);

moc děkuji za radu :)

.NET › Serializable VC++
4. 12. 2012   #168070

Dobrý den mam udělanou třídu: TridaDat, která v sobe obsahuje jeste další tridy. Vytvorim pole typu TridaDat a pak jej chci serializovat. v C# mi to fungovalo v pořádku ale potřebuji to ted dostat do VC++.
spadne mi to když chci uložit data, v tomto řádku :
XmlSerializer^ s = gcnew XmlSerializer (array<TridaDat^>::typeid);

Hlásí to tuto chybu :
An unhandled exception of type 'System.InvalidOperationException' occurred in System.Xml.dll
Additional information: Při reflexi typu došlo k chybě SerializaceDataToXml.TridaDat[].

zde je funkce pro uložení:

public:
static void SerializeToXML(array<TridaDat^>^ process, System::Windows::Forms::SaveFileDialog^ sfd)
      {   
      XmlSerializer^ s = gcnew XmlSerializer (array<TridaDat^>::typeid);
      TextWriter^ writer = gcnew StreamWriter (sfd->FileName);
      s->Serialize (writer,process);
      writer->Close();
      }

třída kterou chci ukládat vypada takto a je napsana v TridaData.h:

#pragma once

   using namespace System::IO;
   using namespace System;
   using namespace System::Xml;
   using namespace System::Xml::Schema;
   using namespace System::Xml::Serialization;


namespace SerializaceDataToXml
{

   [Serializable] //serializační znak
    ref class Cerpadlo
    {
   public:
      Cerpadlo(){
         DobaCerpani = gcnew array<double>(8);
         PrutokCerpadla = gcnew array<int>(8);
      }
       bool   PumpActive;
      static array<double> ^ DobaCerpani;
      static array<int> ^ PrutokCerpadla;
    };// class Cerpadlo


   [Serializable]
    ref class Agilent
    {
   public:
      Agilent(){
         AgiNasVelicina1 = gcnew array<int>(8);
         Hodnota1 = gcnew array<double>(8);
         Hodnota2 = gcnew array<double>(8);
         Hodnota3 = gcnew array<double>(8);
         Mereno1 = gcnew array<int>(8);
         CasBehu = gcnew array<double>(8);
         OffHodnota = gcnew array<double>(8);
      }
        bool  AgiAct;
        static array<int> ^ AgiNasVelicina1;
      static array<double> ^ Hodnota1;
      static array<double> ^ Hodnota2;
      static array<double> ^ Hodnota3;
      static array<int> ^ Mereno1;
      static array<double> ^ CasBehu;
      static array<double> ^ OffHodnota;
    };//class Agilent


   [Serializable]
    ref class Termostat
    {
   public:
      Termostat(){
         TermOn = gcnew array<bool>(8);
         TermDobaOn = gcnew array<bool>(8);
         TermTemp = gcnew array<int>(8);
         TermDelay = gcnew array<int>(8);
      }
      static array<bool> ^ TermOn;
      static array<bool> ^ TermDobaOn;
      static array<int> ^ TermTemp;
      static array<int> ^ TermDelay;
    };

    [Serializable]
    ref class TGdrive
    {
   public:
      TGdrive(){
         Vzor = gcnew array<int>(24);
         Funkce = gcnew array<int>(24);
         Pozn = gcnew array<String^>(24);
      }
      static array<int> ^ Vzor;
      static array<int> ^ Funkce;
      static array<String^> ^ Pozn;         
    };

[Serializable]
public ref class TridaDat
    {
   public:
      TridaDat(){
         cerpadlo  = gcnew Cerpadlo();
         agilent = gcnew Agilent();
         termostat = gcnew Termostat();
         tgdrive   = gcnew TGdrive();
      }
      String^ JmenoVzoru;
        bool VzorAktivni;
        String^ Komentar;
        String^ PoleBunek;

      Cerpadlo^ cerpadlo;
        Agilent^   agilent;
        Termostat^ termostat;
        TGdrive^   tgdrive;

        double MaxTlak;
        int Tnas;
        int Tods;
        int Tvymyti;

    };
}

moc děkuji za radu :)

Luu
.NET › Třída ve třídě, C++
29. 11. 2012   #167801

#2 Radek Chalupa
jj, je to tim public,  diky moc ;)

.NET › Třída ve třídě, C++
28. 11. 2012   #167775

Dobrý den,

potřeboval bych vytvořit třídu ve třídě a moc se mi to nedaří.

kod:
zde je moje třída v souboru DataXml.h

#pragma once
   using namespace System::IO;
   using namespace System;
   using namespace System::Xml;
   using namespace System::Xml::Schema;
   using namespace System::Xml::Serialization;

namespace ClassInClass {

public ref class Cerpadlo
{
   int Time;
};


[Serializable]
public ref class DataXml
{
public:
   DataXml(){
      cerpadlo = gcnew Cerpadlo();
   }
   int cisl;
   double moje;
   Cerpadlo^ cerpadlo;
};

}

Ve formulaři mam pod tlačítkem tuto funkci, která mi hlásí chybu a nevim proc:

DataXml ^jo = gcnew DataXml();
    jo->cisl = 1;
    jo->moje =1001;
    jo->cerpadlo->Time = 20;

chybu mi hlási prekladač na posledním řádku : "jo->cerpadlo->Time = 20;"

Prosim o radu, co zde mám špatně?

Moc děkuji za rady.

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032020 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý