Har hållt på och mixrat lite i Visual Studio och gör lite exempel från böcker, men varje gång jag öppnar en ny bok och ska testa nåt så får jag massa fel! Öppnar jag dock projektet som finns med på tex cdn till boken så funkar det upperligt! Kan vara kompilatorflaggor så att den tittar på koden som C snarare än C++. men som jag skrev så funkar det hur bra som helst om jag öppnar exemplet från boken och komplierar men inte om jag skapar ett eget projekt och kopierar koden från exemplet! <b>>men som jag skrev så funkar det hur bra som helst om jag öppnar exemplet från boken och komplierar men inte om jag skapar ett eget projekt och kopierar koden från exemplet!</b> sorry att jag e lite dum i huvudet, men eftersom exemplet funkar fint men inte min "kopierade" kod... klipp o klistra! Då måste det ju vara nåt med programmet som gör att jag får fel när jag komplierar min kopierade kod och inte när jag komplierar exempel koden Låt säga att du inte skulle ha "projekt" som du har i VC++, utan bara separata filer. Då sker följande: Grejjen är väl kanske att jag använder mig utav Visual Studio Express, och exemplet som kommer ifrån Introducting Directx 9.0 är skrivet i Visual Studio.net (2005 tror jag det är) och när jag öppnar det konverteras det till Express icke sloppy som du säger? Vem har skrivit boken? My bad, boken heter Beginning DirectX9 och är skriven av en tjej som heter Wendy Jones Ja, men den ska vara bra, hade de verkligen void main på ett ställe och int main på ett annat? nja dom förklarade innebörden i boken mest... 1. void-historien: så jag ska fortsätta läsa i pratas bok om c++ programmering innan jag ger mig in på avancerade saker :) tycker du! Har du några bra sidor/böcker att rekommender förutom den för en nybörjare? Man kan göra bra avancerade saker utan ett gui. Jag tycker inte du ska lägga möda på det, eftersom det är mer krångligt än svårt. Jag har nästan inte hållt på någonting med just c o c++, kan dock PHP och SQL hyfsat! Anledningen varför jag börjat intressera mig för just c++ och directx är spelprogrammering! Vet att det är en lång väg dit, men man måste börja någonstan! Jag har sökt in på Programmering A nu som börjar om 2 veckor, sen kan man läsa vidare på B & C inom C++, hoppas att det är ett bra sätt att börja! Ack, denna spelprogrammering... =) Det är inte för att jag ska göra nästa World of Warcraft jag vill lära mig, utan för min egen skull! Att bara kunna koda ihop ett eget Pong så blir jag nöjd =) annars så skulle jag nog vilja lära mig lite om program till windows mobile som jag gillar och använder rätt mycket! Minneshantering är inte superviktigt, inte än. Läs på bara, och läs den hellre en gång till sen. vad är det du tycker är intressantare än att spela tvspel =) vad har du utvecklat för program? så du menar att det finns roligare saker än tvspel? =) Det är svårt att beskriva, dels matematiska tillämpningar, om man är lagd åt det hållet, sen är det allmänt inom datalogi och dess koppling till matte och fysik som jag gillar. låter som du programmerar kärnvapen spetsar :O Närå, bara att jag har skrivit på avtal som säger att jag inte får berätta något. hur skulle ett sådant program kunna byggas upp, vilka delar och så behövs, jag kan juh inget om databaser och sånt ännu! Nu har jag iaf hittat på felet med mina Win32 applikationer, hittade denna länk på forumet http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=849851&SiteID=1 och precis det problemet jag hade! Jepp, korrekt. Samma lösning bör ha funnits i den första länken jag gav. Returneringsfelet är helt korrekt, du kan få bort det genom att skriva någon av:Inställningar i visual studio
kopierar jag koden till mitt eget skapade projekt så kommer felen igen!
ex.
c:\documents and settings\robbin\mina dokument\visual studio 2008\projects\example1\example1\winmain.cpp(19) : error C2731: 'WinMain' : function cannot be overloaded
1> c:\documents and settings\robbin\mina dokument\visual studio 2008\projects\example1\example1\winmain.cpp(16) : see declaration of 'WinMain'
1>c:\documents and settings\robbin\mina dokument\visual studio 2008\projects\example1\example1\winmain.cpp(52) : error C2440: '=' : cannot convert from 'const char [22]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>c:\documents and settings\robbin\mina dokument\visual studio 2008\projects\example1\example1\winmain.cpp(67) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [22]' to 'LPCWSTR'
1> Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
vad är det för skillnar på mitt projekt och det som dom skapat? som sagt, det funkar om jag öppnar deras från cdn och komplierar det!Sv: Inställningar i visual studio
Vi kan ju ta felen i ordning:
19 och 16: Du verkar ha olika signatur på WinMain i deklarationen och definitionen
52: http://www.codeguru.com/forum/showthread.php?t=360665Sv:Inställningar i visual studio
Vad menar du med olika signatur på dek. och def?Sv: Inställningar i visual studio
Ja, det är just det jag menar med kompilatorflaggor. De kan få vissa koder att kompilera trots att de har vissa felaktigheter.
Ang. dek/def
Om du har
void apa(void)
och sen skriver
int apa(void)
Alltså om antingen antalet inputargument, typen på dem eller returtypen skiljer sig, så får man det felet.Sv:Inställningar i visual studio
Sv: Inställningar i visual studio
1. Man kompilerar varje enskild cpp-fil. Ur detta får man ett antal objektfiler.
2. Man länkar ihop alla objektfilerna. Ur detta får man en exekverbar fil.
2:an kan vi skita i tills vidare.
1. i princip ser det ut så här:
compile file.cpp -flaggor
"Flaggor" är en rad olika inställningar som kompilatorn tar hänsyn till. Till exempel kan det handla om optimeringar eller olika typer av stöd för speciella språkkonstruktioner. Framför allt finns det stöd för att göra kompilatorn lite "sloppy", alltså att den inte är lika noga med att man skriver rätt. Så var det i C.
Om man istället har ett projekt, så ligger de här flaggorna inbakade i projektfilen. De kommer sen skickas till kompilatorn vid kompileringen.
Min gissning är att att vad du har helt enkelt är standardinställningar som inte funkar, medan de i exemplet har lagt in inställningar för att göra kompilatorn lite sloppy.Sv:Inställningar i visual studio
Men hur ska man kunna veta vad och vad man inte får använda i de olika programmen eftersom dom är rätt kinkiga av naturliga själ antar jag!
Men det är svårt att sätta sig in i en bok och försöka lära sig grunderna när man får felmeddelanden och inte har en aning om vad det beror på!
Jag har kikat lite på det där du skrev om void innan och jag tror jag fattar, just det exemplet var med i 3:e upplagan av Lär dig C++ Programming! void main() och int main(void) och skillnaden!
Jag ska klistra in koden här sen så kanske du kan se vad felet beror på och vad jag kanske bör tänka på för att få det att fungera under Express Edition av VS! Sitter dock på en annan dator nu
Tack för alla svar, man lär sig saker hela tiden :)Sv: Inställningar i visual studio
Känner inte igen titeln, men jag känner mig skeptisk mot den.Sv:Inställningar i visual studio
Sv: Inställningar i visual studio
(main ska för övrigt alltid vara int istället för void).Sv:Inställningar i visual studio
som jag fattar det så hoppar den över void grej()
och om man inte skriver nåt innanför () så e det automatiskt (void)
int grej(void)
har jag rätt?
hur som helst så får jag felmeddelanden på allt jag försöker åstakomma! Går bra så länge det är vanlig console applikation, men så fort jag ska göra en win32 app så får jag felmeddelanden överallt
försöker skapa ett fönster bland annat och har testat massa olika exempel
har du några tips?Sv: Inställningar i visual studio
En funktionsdeklaration skrivs så här:
T funktionsnamn(T1 a1, T2 a2, ... TN an);
Och en funktionsdefiniton:
T funktionsnamn(T1 a1, T2 a2, ... TN an)
{
...
}
T1 till TN är olika typer (t.ex. int, double, std::string, osv.) och a1 till an är argumentens namn.
T är också en typ, men kan också vara void. Om T är en typ, säg int, så måste funktionen returnera en int:
int f(...)
{
int x;
...
return x;
}
//och kan anropas:
int y = f(...);
Om T är void så kan man inte använda resultatet till något, och man får inte heller returnera något. Man kan dock bara "returnera från funktionen", dvs avsluta den, genom att använda "return;".
Man kan också, i argumentlistan skriva void. Det betyder att funktionen inte tar några argument.
T f(void);
T f(void)
{
...
}
Det finns ytterligare en variant, att inte skriva något alls i argumentlistan. Gör inte det. Återkom om du verkligen vill veta vad det innebör.
2. "Felmeddelanden på allt". Ja, förmodligen har det att göra med länkning, kompileringsflaggor eller saknade headerfiler att göra. Eller att du gör fel.
Mitt tips är enkelt: Skippa detta ett tag, det är inte viktigt än. Det är en tämligen enkel grej när du väl förstår resten av språket. Kör med console mode, och lär dig språket.
Sv:Inställningar i visual studio
Sv: Inställningar i visual studio
Läs boken du har, kolla sen på Scott Meyers böcker. Vet inte vad du har för erfarenhet av annan programmering; databaser, basic grafik, etc. är lämpligt sen.Sv:Inställningar i visual studio
Vad har du själv för erfarenhet om c++? jobbar du med det?Sv: Inställningar i visual studio
Hoppas inte på <b>för</b> mycket bara, det är ingen jättebransch. ;)
C++ är dock helt rätt. Inte annat än för att hemskt mycket kod är skriven i C/C++ och att många språk direkt eller indirekt bygger på det.
Med tanke på din bakgrund: mitt råd är att du börjar med boken, skriv massor av kod, men gör det smart. Sitt inte med massa utskrifter och sida upp och sida ner med "menyer" och annat krafs. Lär dig programmeringen.
Sen satsar du på objektorientering för hela slanten. Databaser är också bra och tar inte mycket tid. Sen kollar du på hur 2D-grafik är uppbyggd, och fungerar. Återkom sen. =)
Jag själv har väl si så där 15 år av programmering, varav 7 år C/C++. Jag jobbar inte med C++, utan med VBA, men däremot gör jag exjobb i C++.Sv:Inställningar i visual studio
Har du hållt på med nåt sånt under dina år som programmerare? spel eller mobilt?
Jag kör på med boken, läste nästan hela dagen igår och testade massa exempel.. tycker dock det är svårt att förstå vissa bitar, som minnen och adresser och bla bla bla!
Förresten, vad det dom här Effective C++ och More Effective C++ du menade? Är dom nästa steg eller fortfarande nybörjar böcker? eller för folk som redan kan C++Sv: Inställningar i visual studio
Ang. spelprogrammering: Inte mycket. Alla gör något enstaka spel, men jag började tycka att andra saker var mer intressanta.
Ang. Meyers: Jepp, och "Effective STL". De är riktade mot "intermediate users", alltså inte nybörjarböcker. Du kan nog börja läsa dem när du i stort sett förstår allt i den boken du har. Sv:Inställningar i visual studio
Sv:Inställningar i visual studio
vad har du utvecklat för något om man får fråga? Nåt roligt?
*EDIT blev visst en dubbelpost, för jag såg inte att den första lagradesSv: Inställningar i visual studio
Lite olika exempel: kryptoteknik, funktionella språk, kompilatorkonstruktion, osv. Tyvärr är de roligaste grejerna jag har utvecklat sånt jag inte får tala om.
Grejen är att spel har en tendens att inte vara speciellt "rolig programmering", det är mycket krångel och försöka få saker så effektiva som möjligt. Sen har man en inställning "if it looks right, it is right", vilket jag tycker är lite tråkigt - jag tycker att saker ska göras rätt! =)Sv:Inställningar i visual studio
Har funderat lite på det här med fysik om det är nåt att läsa om man vill fortsätta, eftersom jag också e lite lagd åt det hållet! Läser juh för närvarande upp matten! Kanske får ta upp fysiken sen också, även den är ju bra i spel!
Nåt som jag saknar när man läser alla böcker om C++ är att man inte får några direkt roliga övningar, jag gillar mera att ha ett projekt, tex att skapa ett program där man kan lagra recept, sen kan man söka där, multiplicera recpetet efter antal personer osv. såna saker! Då brukar man få med ganska mycket nyttigheter så får man lära sig att bygga upp programmet från grunden! Felsöka, rätta till, lägga till funktioner! Men så långt har jag inte kommit ännu så jag skulle klara av tror jag eftersom jag inte vet hur jag kan lagra saker så programmet kommer ihåg det nästa gång jag startar upp det. Men du förstår min poäng, ofta blir det att man bara skriver av exemplet, testar det! DET FUNKA, och så läser man lite vad som händer på nästa sida sen går man vidare!Sv: Inställningar i visual studio
Jag känner igen problemet du har. Det enklaste sättet att motverka det är att skaffa ett eget projekt, något som inte har med mängder av utskrifter att göra, utan där man mer kan fundera på hur grejer ska lösas bäst.
Receptprogrammet är ett bra exempel, prova det. Sen satsar du på att snygga upp koden.
Sen provar du något nytt, snyggar upp den koden. Sen gör du 10 andra riktiga program.
Efter det går du tillbaks till receptprogrammet. Du kommer hitta massor av saker du vill snygga upp. Gör så här tills du känner att koden blir snygg, buggfri, enkel att förstå och enkel att ändra.
Sånt här gör du parallellt med att du läser, så får du nog mycket snabbt upp en hög kvalitet på det du gör.Sv:Inställningar i visual studio
Sv: Inställningar i visual studio
Får fortfarande en varning
warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data
men programmet komplieras och kan körs som det skaSv:Inställningar i visual studio
return (int)wparam;
return int(wparam);
return static_cast<int>(wparam);
(eller vad nu wparam-grejen heter)
Första varianten är gammal C-form. Andra är modernare C++, tredje är den "snyggaste" (även om den inte ser så snygg ut) och jävligt C++.