C++ -kysymykset

Muu yhteisön välinen keskustelu.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Kokeilin tätä visuaalista C++:ssaa, ja heti tuli ongelmia määritteiden kanssa. Mitä teen jos copy-paste koodin kommenttina on

Code: Select all

// compile with: /clr
? Kun kirjoitan siis tämän koko koodin, tulee virhe jo ekalla koodi rivillä:

Code: Select all

// text_read.cpp
// compile with: /clr
#using <system.dll>
using namespace System;
using namespace System::IO;

int main()
{
   String^ fileName = "textfile.txt";
   try 
   {
      Console::WriteLine("trying to open file {0}...", fileName);
      StreamReader^ din = File::OpenText(fileName);

      String^ str;
      int count = 0;
      while ((str = din->ReadLine()) != nullptr) 
      {
         count++;
         Console::WriteLine("line {0}: {1}", count, str );
      }
   }
   catch (Exception^ e)
   {
      if (dynamic_cast<FileNotFoundException^>(e))
         Console::WriteLine("file '{0}' not found", fileName);
      else
         Console::WriteLine("problem reading file '{0}'", fileName);
   }

   return 0;
}
Ja itse koodissa ei voi olla virhettä, koska se on suoraan mukanatulevista dokumenteista. Haluan siis tietää, miten ohjelma tulisi ajaa.
Dande
Active Member
Posts: 193
Joined: Tue Aug 28, 2007 4:30 pm

Re: C++ -kysymykset

Post by Dande »

Grandi wrote:Kokeilin tätä visuaalista C++:ssaa, ja heti tuli ongelmia määritteiden kanssa. Mitä teen jos copy-paste koodin kommenttina on

Code: Select all

// compile with: /clr
? Kun kirjoitan siis tämän koko koodin, tulee virhe jo ekalla koodi rivillä:

Code: Select all

// text_read.cpp
// compile with: /clr
#using <system.dll>
using namespace System;
using namespace System::IO;

int main()
{
   String^ fileName = "textfile.txt";
   try 
   {
      Console::WriteLine("trying to open file {0}...", fileName);
      StreamReader^ din = File::OpenText(fileName);

      String^ str;
      int count = 0;
      while ((str = din->ReadLine()) != nullptr) 
      {
         count++;
         Console::WriteLine("line {0}: {1}", count, str );
      }
   }
   catch (Exception^ e)
   {
      if (dynamic_cast<FileNotFoundException^>(e))
         Console::WriteLine("file '{0}' not found", fileName);
      else
         Console::WriteLine("problem reading file '{0}'", fileName);
   }

   return 0;
}
Ja itse koodissa ei voi olla virhettä, koska se on suoraan mukanatulevista dokumenteista. Haluan siis tietää, miten ohjelma tulisi ajaa.
Luo uusi CLR-projekti, ei win32-projekti, johon sitten pasteat tuon koodin
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Okei, kiitos. Luulin että tuo /clr on käynnistysparametri :D
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: C++ -kysymykset

Post by jannepelaa »

EDIT:
Mikä vikana? Vm.cpp:ssa on funktio ProcessCode, joka käyttää ifstreamia ja stringiä, mutta niitä ei voi käyttää. Using namespace std;:nhän pitäisi olla niin, ettei tarvitse kirjoittaa std::stringiä, mutta vaikka using namespace std;:n ottaisi pois ja kirjoittaisi kaikkien stringien, yms. eteen std::, niin ei toimi. On jo aikaa kun viimeksi ohjelmoin, niin en muista mitä tehdä. :(
(Entinen kuva)

EDIT2:
Jos asetuksista laittaa 'Use Precompiled Header (/Yu)' päälle, niin ainoaksi virheeksi muodostuu:
"fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?"
BF++.cpp:n alussa on kyllä '#include "stdafx.h"'. Missä vika?
Last edited by jannepelaa on Fri Jan 25, 2008 2:34 pm, edited 1 time in total.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Luopa tyhjä konsoliprojekti, eli ensin Win32 console, sen jälkeen avautuvata ikkunasta application settings ja Empty Project.

Btw, miksi olet includettanut VM.cpp:n?
OoO
jannepelaa
Active Member
Posts: 101
Joined: Tue Aug 28, 2007 2:27 pm

Re: C++ -kysymykset

Post by jannepelaa »

anttipanda wrote:Luopa tyhjä konsoliprojekti, eli ensin Win32 console, sen jälkeen avautuvata ikkunasta application settings ja Empty Project.

Btw, miksi olet includettanut VM.cpp:n?
Kun laitoin vm.cpp:ssan tilalle vm.h:n, niin homma rupesi toimimaan. :D

Ja olin laittanut VM.cpp kai vahingossa.
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Code: Select all

C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\kernel32.lib : fatal error LNK1107: invalid or corrupt file: cannot read at 0x18000
Tollanen tulee mulla mitä vain projektia buildatessa. Oliskohan virukset tai matoset nakerrelleet kyseistä tiedostoa? Pitäisköhän koko vcpp asentaa uudestaan?
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Grandi wrote:

Code: Select all

C:\Program Files\Microsoft SDKs\Windows\v6.0A\\lib\kernel32.lib : fatal error LNK1107: invalid or corrupt file: cannot read at 0x18000
Tollanen tulee mulla mitä vain projektia buildatessa. Oliskohan virukset tai matoset nakerrelleet kyseistä tiedostoa? Pitäisköhän koko vcpp asentaa uudestaan?
Tarkista tuo polku, omalla koneellani ei ainakaan ole tuollaista tiedostoa. Näyttää olevan kaksi kenoviivaakin peräkkäin tuossa polussa. Eli luultavasti vain projektin asetukset pielessä.

Itselläni kernel32.lib löytyy kansiosta C:\Program Files\Microsoft Visual Studio 8\VC\lib\
Last edited by anttipanda on Mon Jan 28, 2008 9:48 am, edited 1 time in total.
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Voisitko vielä kertoa, että miten niitä projektin asetuksia saa säädettyä? En ainakaan 'Propery pageseista' löytänyt.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Solution Explorerissa, righclickkiä projektin nimen kohdalle ja valitset properties. Tämä aukaisee projektin asetusikkunan (juurikin Property Pages), josta sitten Configuration Properties -> Linker -> Input -> ja luullakseni additional depedencies. En ole tästä ihan satavarma, kun Visual Studio 2005 pro:ssä oli muistaakseni eri näköinen tuo linkkerin asetusikkuna, ja tuolla olen viimeksi vakavaa Win32 C++:aa harrastellut.
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Ei löytynyt tuota linker - juttua sieltä :(
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Niin siitä Treeviewistä ei muka Linker-nodea löydy? Onko projektina Win32-pohjainen vai CLR-pohjainen (.NET)?
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

anttipanda wrote:Niin siitä Treeviewistä ei muka Linker-nodea löydy?
No ei.
anttipanda wrote:Onko projektina Win32-pohjainen vai CLR-pohjainen (.NET)?
CLR.
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Grandi wrote:
anttipanda wrote:Niin siitä Treeviewistä ei muka Linker-nodea löydy?
No ei.
anttipanda wrote:Onko projektina Win32-pohjainen vai CLR-pohjainen (.NET)?
CLR.
Hmm. Kokeilin äkkiä tehdä CLR-konsoliprojektin, ja kyllä sieltä löytyi ihan ok (Visual C++ Express 2005).
evo.PNG
evo.PNG (25.92 KiB) Viewed 10754 times
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Ahaa. Pitää näemmä valita tosta combolaatikosta "active(debug)" joka mulla oli oletuksena "active(release)". Kiitos.
EDIT:

En saanut sieltä muutettua tiedostopolkua oikeaksi.

anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

Grandi wrote:Ahaa. Pitää näemmä valita tosta combolaatikosta "active(debug)" joka mulla oli oletuksena "active(release)". Kiitos.
EDIT:

En saanut sieltä muutettua tiedostopolkua oikeaksi.

Sori, ei sitä sieltä näköjään vaihdetakaan. Elikäs, Visual C++:n asetuksista voidaan vaihtaa yleisesti käytety polut joista libraryjä etsitään:

Tools -> Options... -> ja
options.png
options.png (20.73 KiB) Viewed 10689 times
Tämän lisäksi jokaiselle projektille jokaiselle konfiguraatiolle voidaan lisätä omia polkuja:
properties.png
properties.png (27.87 KiB) Viewed 10689 times
Toivottavasti noista on jotain apua, jos nuo näyttävät suurin piirtein oikeilta nuo "yleispolut", niin sitten pitäisi alkaa tutkimaan että mitä arvoja on noilla muuttujilla on.
OoO
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Tän näkönen ikkuna on mulla;
Image
Eli mitäs tosta oikein muokkaillaan?
User avatar
vilQuri
Active Member
Posts: 239
Joined: Wed Aug 29, 2007 6:25 pm
Location: Turku

Re: C++ -kysymykset

Post by vilQuri »

Saako DarkGDK:oota Dev-C++:alle jotenkin. Muuten käyttäisn VisualC++ 2008 mutta kun en oikein ole tottunut käyttämään sitä :mrgreen:
anttipanda
Active Member
Posts: 248
Joined: Mon Aug 27, 2007 9:23 pm
Location: Oulu

Re: C++ -kysymykset

Post by anttipanda »

vilQuri wrote:Saako DarkGDK:oota Dev-C++:alle jotenkin. Muuten käyttäisn VisualC++ 2008 mutta kun en oikein ole tottunut käyttämään sitä :mrgreen:
No headereita ja staattisia kirjastoja tuo DarkGDK mahtaa olla, joten miksipä ei saisi. Muutat kääntäjäsi asetuksia siten että se löytää nuo tiedostot ja käännät menemään. En sitten tiiä onko tuossa paketissa jotain ihmeellisiä työkaluja yms. mukana mitkä toimisivat Visual C++:n kanssa...
OoO
cheeshelmet.jr
Member
Posts: 75
Joined: Tue Aug 28, 2007 6:59 am

Re: C++ -kysymykset

Post by cheeshelmet.jr »

kuinka voin kääntää koodin esim dll:ksi
Post Reply