C++ -kysymykset

Muu yhteisön välinen keskustelu.
Post Reply
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: C++ -kysymykset

Post by Eräs cb koodaaja »

En ole koskaan kuullut/lukenut. Mutta mutta... Miten MessageBoxia käytetään? Parametrit? Includet? oon melko noobi näissä c++ jutuissa.
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
jabanii
Member
Posts: 93
Joined: Tue Aug 28, 2007 9:23 pm

Re: C++ -kysymykset

Post by jabanii »

Eräs cb koodaaja wrote:En ole koskaan kuullut/lukenut. Mutta mutta... Miten MessageBoxia käytetään? Parametrit? Includet? oon melko noobi näissä c++ jutuissa.
MSDN. Sieltä saa kaikki WINAPI funktiot. Yleensä riittää pelkästään googletus funktion nimellä, niin ensimmäinen linkki on MSDN:ään. Tässä.
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

Juu, MSDN on tosiaan windows-ohjelmoinnissa ykkönen, ja standardikirjastojen käyttö (kaikkine hienouksineen ym.) löytyy C++ Reference-nimiseltä sivulta. Google muistaa osoitteen minua paremmin.
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: C++ -kysymykset

Post by Eräs cb koodaaja »

Miten VC++:lla voi tehdä dll tiedostoja, kun Devissä oli suoraan dll projekti, mutta VC:stä en sitä löytänyt?
EDIT:

Miten VC:hen saa SDL:n

Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
Koodiapina
Forum Veteran
Posts: 2396
Joined: Tue Aug 28, 2007 4:20 pm

Re: C++ -kysymykset

Post by Koodiapina »

Miten VC:hen saa SDL:n
http://www.ohjelmointiputka.net/opas.ph ... s#visualc6
Wanhaan VC:hen, mutta ajaa kai asiansa.
Oli muuten ensimmäinen vaihtoehto googlella.
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: C++ -kysymykset

Post by Eräs cb koodaaja »

VC 2008 oli tarkoitus saada tuo sdl.
Ja miten niitä dll tiedostoja tehdään VC 2008:lla kun devissä oli pohja valmiina.
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

Eräs cb koodaaja wrote:VC 2008 oli tarkoitus saada tuo sdl.
Ja miten niitä dll tiedostoja tehdään VC 2008:lla kun devissä oli pohja valmiina.
Eikös VC 2008:kin ollut? (olen isosiskon koneella, niin en pysty tarkistamaan) Eli ihan vain projektia luodessa säädät valikoissa. Ja jos ei ollut, niin headeri ja sitten tiedosto ihan niitä funktioita varten, siitä se lähtee. Ja google tuntee ohjelmointioppaat, myös DLL:ien suhteen.
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: C++ -kysymykset

Post by Eräs cb koodaaja »

Sain asennettua SDL:n tuon ohjeen perusteella, mutta kääntäjä valittaa virheestä:

Code: Select all

------ Build started: Project: SLDTesti, Configuration: Debug Win32 ------
Compiling...
SLDTesti.cpp
c:\documents and settings\hp_omistaja\omat tiedostot\visual studio 2008\projects\sldtesti\sldtesti.cpp(32) : fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "stdafx.h"' to your source?
Build log was saved at "file://c:\Documents and Settings\HP_Omistaja\Omat tiedostot\Visual Studio 2008\Projects\SLDTesti\Debug\BuildLog.htm"
SLDTesti - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Mistähän mahtaa johtua? Koodina on ohjelmointiputkan sdl-opaan esimmäinen koodi.
EDIT:

Sama ongelma ilmeni kääntäessäni yhtä Dll-juttua

Tuossa dll-jutussa halusin uuden dll-projektin, ja löysinkin sen sdl:llä säätäessäni kohdasta "Win32 Project", eikä siis mitään ohjelmointioppaita.
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
koodaaja
Moderator
Moderator
Posts: 1583
Joined: Mon Aug 27, 2007 11:24 pm
Location: Otaniemi - Mikkeli -pendelöinti

Re: C++ -kysymykset

Post by koodaaja »

Kokeilehan tehdä kuten siinä ehdotetaan ja lisää includeihin #include "stdafx.h". Siis se sanoo, että esikäännettyä headeria etsittäessä tiedosto loppui odottamatta, mikäli et itse saanut selvää. Ei sitten hajuakaan, mitä tuo tarkoittaa, vaikuttaa lähinnä korruptoituneelta tiedostolta, niissä olen nähnyt tuota unexpected end of file -ongelmaa.
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: C++ -kysymykset

Post by Dibalo »

En suosittele DLL:ien tekoa heti aluksi. Niiden teossa pitää tietää jo hieman enemmän ohjelmoinnista sekä ymmärtää tiettyjä seikkoja Dll-kutsuihin liittyen. Vaikka pidän itseäni jo melko hyvänä C++ -koodaajana, dll:ien teko tökkii silti ajoittain. Suosittelen aloittelemaan niistä "Hello World"-ohjelmista. ;)
The darkest spells can be found from
http://tunkkaus.blogspot.fi
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: C++ -kysymykset

Post by Eräs cb koodaaja »

Dibalo wrote:En suosittele DLL:ien tekoa heti aluksi. Niiden teossa pitää tietää jo hieman enemmän ohjelmoinnista sekä ymmärtää tiettyjä seikkoja Dll-kutsuihin liittyen. Vaikka pidän itseäni jo melko hyvänä C++ -koodaajana, dll:ien teko tökkii silti ajoittain. Suosittelen aloittelemaan niistä "Hello World"-ohjelmista. ;)
En ole mikään aloittelija C++ puolella. Ongelmia aiheuttaa lähinnä tämä uusi VC++ 2008. Olen kyllä enemmän tehnyt Win 32 Console ja SDL juttuja Devin kanssa, mutta nyt ajattelin VC:n kanssa kokeilla tätä Wintoosa ohjelmointia(Tarkoitin ylempänä, kun sanoin:"Olen aika noobi näissä C++ jutuissa", lähinnä Windows ohjelmointia). Dll juttuja olen lähinnä säätänyt noita CB juttuja Marcoderin ohjeilla ja muokatulla ParamBufferilla( Sekä sisään, että ulos parametrit toimivat CB:ssä), eli en mitään suurempaa vielä.

Ja sain tuon SLD:n toimimaan, mutta Grafiikka esimerkistä (Ohjelmointi putkan SDL-opas sivu 2) Kuvan piirtäminen ei onnistu. Käytän kaksoispuskurointia ja Flippiä. Ohjelma siis aukeaa, mutta kuvaa ei näy. Missä vika?
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
jabanii
Member
Posts: 93
Joined: Tue Aug 28, 2007 9:23 pm

Re: C++ -kysymykset

Post by jabanii »

Eräs cb koodaaja wrote:
Dibalo wrote:En suosittele DLL:ien tekoa heti aluksi. Niiden teossa pitää tietää jo hieman enemmän ohjelmoinnista sekä ymmärtää tiettyjä seikkoja Dll-kutsuihin liittyen. Vaikka pidän itseäni jo melko hyvänä C++ -koodaajana, dll:ien teko tökkii silti ajoittain. Suosittelen aloittelemaan niistä "Hello World"-ohjelmista. ;)
En ole mikään aloittelija C++ puolella. Ongelmia aiheuttaa lähinnä tämä uusi VC++ 2008. Olen kyllä enemmän tehnyt Win 32 Console ja SDL juttuja Devin kanssa, mutta nyt ajattelin VC:n kanssa kokeilla tätä Wintoosa ohjelmointia(Tarkoitin ylempänä, kun sanoin:"Olen aika noobi näissä C++ jutuissa", lähinnä Windows ohjelmointia). Dll juttuja olen lähinnä säätänyt noita CB juttuja Marcoderin ohjeilla ja muokatulla ParamBufferilla( Sekä sisään, että ulos parametrit toimivat CB:ssä), eli en mitään suurempaa vielä.

Ja sain tuon SLD:n toimimaan, mutta Grafiikka esimerkistä (Ohjelmointi putkan SDL-opas sivu 2) Kuvan piirtäminen ei onnistu. Käytän kaksoispuskurointia ja Flippiä. Ohjelma siis aukeaa, mutta kuvaa ei näy. Missä vika?
Windows -ohjelmoinnista on tehty tälläine todella hyvä opas aloittelijoille. DLL:ssä käytetään funktiota __declspec(), joka on sisäänrakennettu C++:n. Parametriksi laitetaan joko dllexport tai dllimport. Sitten viellä pitää käyttää extern "C" (vain C++), joka muuttaa sen C -funktioksi.

Yleensä teen tälläisen esikääntäjä kikkailun, eli teen yhden headerin, jonka includettamalla saa DLL -funtiot käyttöön + tekee DLL:n koodaamisesta helpompaa.

Esimerkki

omadll.h

Code: Select all

#ifndef _OMADLL_H
#define _OMADLL_h

#ifdef _BUILDING_OMADLL
#define OMADLLFUNC extern "C" __declspec(dllexport)
#else
#define OMADLLFUNC extern "C" __declspec(dllimport)
#endif

OMADLLFUNC int OD_plus(int _number1, int _number2);

#endif
omadll.cpp

Code: Select all

#define _BUILDING_OMADLL
#include "omadll.h"

int OD_plus(int number1, int number2)
{
	return number1 + number2;
}
Sitten vain includetat tuon projektiisi ja käytät sitä.

HUOM. Windows -ohjelmointi voi olla todella vaikeaa aloittelijoille, joten lue rauhassa tuo opas läpi. Googleta myös ongelmaasi ja katso löytyykö siitä tietoa MSDN:stä, enne kuin postaat sen tänne.
EDIT: Koodissa oli kirjoitus virhe. Korjattu.
Last edited by jabanii on Tue Jan 22, 2008 1:01 am, edited 1 time in total.
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: C++ -kysymykset

Post by tuhoojabotti »

mull ois ongelma pitäis saada stringi intiks ja sit toiste päin googletin jotain vastauksii mut mikään ei tuntunyt toiminaan kerran sain silleen et oli vaan 1 virhe mun en osannut korjata sitä...
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
User avatar
CCE
Artist
Artist
Posts: 650
Joined: Mon Aug 27, 2007 9:53 pm

Re: C++ -kysymykset

Post by CCE »

Vaikkapa näin.

Code: Select all

teksti$="13"
numero = Int(teksti$) 
Edit:
Ja toisinpäin tietenkin näin.

Code: Select all

numero=13
teksti$ = Str(numero) 
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: C++ -kysymykset

Post by Dibalo »

The darkest spells can be found from
http://tunkkaus.blogspot.fi
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: C++ -kysymykset

Post by tuhoojabotti »

Dibalo saisko vielä käyttö esaimerkin kun en saanut toimimaan :oops: ja mikähän oisi hyvä 3d kirjasto (ja helppo :P)
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
User avatar
Dibalo
Advanced Member
Posts: 298
Joined: Mon Aug 27, 2007 8:12 pm
Location: Espoo, Finland
Contact:

Re: C++ -kysymykset

Post by Dibalo »

tuhoojabotti wrote:Dibalo saisko vielä käyttö esaimerkin kun en saanut toimimaan :oops: ja mikähän oisi hyvä 3d kirjasto (ja helppo :P)
Heitetään riskillä:

Code: Select all

using namespace std;

string str = "1234";
istringstream s = str;
int luku = 0;
s >> luku;

int luku = 1234;
ostringstream s;
s << luku;
string str = s.str();
Helppo 3D-kirjasto on Irrlicht.
The darkest spells can be found from
http://tunkkaus.blogspot.fi
Eräs cb koodaaja
Active Member
Posts: 126
Joined: Wed Aug 29, 2007 3:55 pm

Re: C++ -kysymykset

Post by Eräs cb koodaaja »

DLL:ssä käytetään funktiota __declspec(), joka on sisäänrakennettu C++:n. Parametriksi laitetaan joko dllexport tai dllimport. Sitten viellä pitää käyttää extern "C" (vain C++), joka muuttaa sen C -funktioksi.

Yleensä teen tälläisen esikääntäjä kikkailun, eli teen yhden headerin, jonka includettamalla saa DLL -funtiot käyttöön + tekee DLL:n koodaamisesta helpompaa.

Esimerkki

omadll.h

Code: Select all

koodia...
omadll.cpp

Code: Select all

koodia...
Sitten vain includetat tuon projektiisi ja käytät sitä.

HUOM. Windows -ohjelmointi voi olla todella vaikeaa aloittelijoille, joten lue rauhassa tuo opas läpi. Googleta myös ongelmaasi ja katso löytyykö siitä tietoa MSDN:stä, enne kuin postaat sen tänne.
Tuo aiheuttaa jotain tällaista:

Code: Select all

------ Build started: Project: EkaDllTesti, Configuration: Debug Win32 ------
Embedding manifest...
Project : error PRJ0003 : Error spawning 'cmd.exe'.
Build log was saved at "file://c:\Documents and Settings\HP_Omistaja\Omat tiedostot\Visual Studio 2008\Projects\EkaDllTesti\Debug\BuildLog.htm"
EkaDllTesti - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Missä vika?
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
tuhoojabotti
Advanced Member
Posts: 485
Joined: Tue Aug 28, 2007 3:53 pm
Location: Suomi, Finland
Contact:

Re: C++ -kysymykset

Post by tuhoojabotti »

Heitetään riskillä:

Code: Select all

using namespace std;

string str = "1234";
istringstream s = str;
int luku = 0;
s >> luku;

int luku = 1234;
ostringstream s;
s << luku;
string str = s.str();
ok mun ohjelmassa (visual c++) on 2 textiboksia ja nappi tein napille eventin click sinne .h tiedostoon... niin kun yritin sinne koodatata semmoista laskemis systeemiä eli textbox1->text+textbox2->text niin ne täytyy siis muuttaa inteiksi mutta kun yritän käyttää siellä muuttujaa se alkaa valittaa siitä... ja minne kopioin tuon esimerkkisisi että se toimii... olen lukenut monia c++ oppaita mutta niissä ei oteta asiaa maanläheisesti esim. avaa editori tee uusi proju okei toi vielä on mutta sitten kun editori pistää sinne jotain ihan outoo textii niin minne sitä pitää koodata? mihin väliin jne. oon ihan nobo tein kyllä consoli laskimen nyt yritän saada sen formiin...
Imagedev.tuhoojabotti.com — “Programmer (noun): An organism that turns caffeine into code.”
jabanii
Member
Posts: 93
Joined: Tue Aug 28, 2007 9:23 pm

Re: C++ -kysymykset

Post by jabanii »

Eräs cb koodaaja wrote:
DLL:ssä käytetään funktiota __declspec(), joka on sisäänrakennettu C++:n. Parametriksi laitetaan joko dllexport tai dllimport. Sitten viellä pitää käyttää extern "C" (vain C++), joka muuttaa sen C -funktioksi.

Yleensä teen tälläisen esikääntäjä kikkailun, eli teen yhden headerin, jonka includettamalla saa DLL -funtiot käyttöön + tekee DLL:n koodaamisesta helpompaa.

Esimerkki

omadll.h

Code: Select all

koodia...
omadll.cpp

Code: Select all

koodia...
Sitten vain includetat tuon projektiisi ja käytät sitä.

HUOM. Windows -ohjelmointi voi olla todella vaikeaa aloittelijoille, joten lue rauhassa tuo opas läpi. Googleta myös ongelmaasi ja katso löytyykö siitä tietoa MSDN:stä, enne kuin postaat sen tänne.
Tuo aiheuttaa jotain tällaista:

Code: Select all

------ Build started: Project: EkaDllTesti, Configuration: Debug Win32 ------
Embedding manifest...
Project : error PRJ0003 : Error spawning 'cmd.exe'.
Build log was saved at "file://c:\Documents and Settings\HP_Omistaja\Omat tiedostot\Visual Studio 2008\Projects\EkaDllTesti\Debug\BuildLog.htm"
EkaDllTesti - 1 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Missä vika?
Koodiini oli tullut kirjoitus virhe, kun en ollut testannut. Nyt se on korjattu.
Post Reply