Zethyr Skrevet 4. juli 2004 Del Skrevet 4. juli 2004 Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at std.ios_base._Init(ios_base* ) at std.basic_ios<char,std::char_traits<char> >.init(basic_ios<char,std::char_ traits<char> >* , basic_streambuf<char,std::char_traits<char> >* _Strbuf, Boolea n _Isstd) in e:\installed\visual studio.net architect edition enterprise\vc7\inc lude\ios:line 130 at std.basic_ostream<char,std::char_traits<char> >.__ctor(basic_ostream<char, std::char_traits<char> >* , basic_streambuf<char,std::char_traits<char> >* _Strb uf, Boolean _Isstd, Int32 _Isstd) in e:\installed\visual studio.net architect ed ition enterprise\vc7\include\ostream:line 45 at std.basic_iostream<char,std::char_traits<char> >.__ctor(basic_iostream<cha r,std::char_traits<char> >* , basic_streambuf<char,std::char_traits<char> >* _St rbuf, Int32 _Strbuf) in e:\installed\visual studio.net architect edition enterpr ise\vc7\include\istream:line 806 at std.basic_fstream<char,std::char_traits<char> >.__ctor(basic_fstream<char, std::char_traits<char> >* , SByte* _Filename, Int32 _Mode, Int32 _Mode) in e:\in stalled\visual studio.net architect edition enterprise\vc7\include\fstream:line 623 at main(Int32 argc, SByte** argv) in c:\documents and settings\magnus\mine do kumenter\visual studio projects\geek5_aa\geeky.cpp:line 63 Tror feilen ligger her: (Det er en 'systemNullReferenceException') fstream foo("hoho.jpg", ios::out|ios::binary|ios::app); foo.write(buffer, strlen(buffer)); foo.close(); 'buffer' har fått en del binærdata lagret i seg tidligere i programmet. kanskje jeg må bruke en 'reinterpret_cast<char &>(buffer)' eller noe?? bufferhar fungert tidligere i programmet, og er deklarert slik: char* buffer = new char[]; Lenke til kommentar
saboi Skrevet 4. juli 2004 Del Skrevet 4. juli 2004 kanskje du må lese hvordan man bruker new. Lenke til kommentar
søppel Skrevet 4. juli 2004 Del Skrevet 4. juli 2004 (endret) char* buffer = new char[]; Kompileres ikke v.h.a. GCC-3.4.0: error: expected primary-expression before ']' token Noe slikt: ... char* buffer = new char[10]; ... delete[](buffer); ... Men lurt å ta en titt i boka ja. :] Endret 4. juli 2004 av søppel Lenke til kommentar
Zethyr Skrevet 4. juli 2004 Forfatter Del Skrevet 4. juli 2004 Hmm... jeg vet ikke størrelsen på den, så jeg har ikke noe tall å oppgi. delete[] buffer; har jeg med.... Lenke til kommentar
søppel Skrevet 4. juli 2004 Del Skrevet 4. juli 2004 [qutoe]'buffer' har fått en del binærdata lagret i seg tidligere i programmet. ... jeg vet ikke størrelsen på den, så jeg har ikke noe tall å oppgi Hvis du fortsatt holder på med den oppgaven du hadde i tidligere post, trenger du ikke lese inn hele fila. Uansett må du lagre størrelsen på dataene du leser inn i buffer samtidig som du leser inn. struct Data { char* data; unsigned int size; }; Lenke til kommentar
Zethyr Skrevet 4. juli 2004 Forfatter Del Skrevet 4. juli 2004 (endret) Hoho, den forrige oppgaven var en lure-oppgave, men jeg driver med noe liknende: les inn ei fil, xor decrypt, bytt ut noen verdier og lagre som noe.jpg jeg gjør dette for å lese inn, hvordan kan jeg modifisere det til å lagre størrelsen samtidig som jeg leser inn ?? ifstream in("data.bin", fstream::binary); char* buffer = new char[]; while(!in.eof()){ in.get(reinterpret_cast<char &>(buffer)); } edit: bare legge inn i loopen at den øker 'size' med én hver gang?? slik: ifstream in("data.bin", fstream::binary); struct Data { char* data; unsigned int size; }; while(!in.eof()){ in.get(reinterpret_cast<char &>(buffer)); size += 1; } Endret 4. juli 2004 av Zethyr Lenke til kommentar
saboi Skrevet 4. juli 2004 Del Skrevet 4. juli 2004 jeg foreslår at du leser en bok før du gjør noe videre jeg. in.get(reinterpret_cast<char &>(buffer)); har du i det hele tatt noen anelse om hva det der gjør? Lenke til kommentar
Zethyr Skrevet 4. juli 2004 Forfatter Del Skrevet 4. juli 2004 (endret) ja, det får programmet mitt til å fungere neida, det endrer datatypen midlertidig, right ? (typecast ?) ps: det er jeg selv som har skrevet den biten, ikke noe jeg hentet fra noe sted... Jeg har lest en stor bok om c++, men har glemt ca. 40 %... derfor spør jeg her for å friske opp kunnskapen, ikke for å få beskjed om å lese alt på nytt Husker mest av det jeg leste sist, så det grunnlegende er borte. Husker mer om f.eks. multiple inheritance osv... Endret 4. juli 2004 av Zethyr Lenke til kommentar
saboi Skrevet 4. juli 2004 Del Skrevet 4. juli 2004 heh. Det får programmet ditt til å kompilere. Så supert. Kompilatoren din sier "nei jeg vil ikke ta imot en char*, jeg vil ha en char&" Når du da caster sier du "det driter jeg i. jeg vet bedre enn deg din dumme kompilator." Hva med å f.eks gjøre in.get(buffer); eller in.get(*buffer); istedetfor å caste? casting er stygt og det fører til feil når du ikke vet hvordan det funker Lenke til kommentar
A_N_K Skrevet 4. juli 2004 Del Skrevet 4. juli 2004 (endret) Hva med å slå opp igjen i læreboka hvis man har glemt noe?? Tross alt ikke uvanlig å repetere til ting sitter. Endret 4. juli 2004 av A_N_K Lenke til kommentar
Zethyr Skrevet 4. juli 2004 Forfatter Del Skrevet 4. juli 2004 ahh... thx saboi Joda, A_N_K, du har rett, men jeg har ikke så mye tid nå Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå