Re: C++ -kysymykset
Posted: Sat Jan 12, 2008 6:59 pm
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ä.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.
Miten VC:hen saa SDL:n
http://www.ohjelmointiputka.net/opas.ph ... s#visualc6Miten VC:hen saa SDL:n
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 wrote:VC 2008 oli tarkoitus saada tuo sdl.
Ja miten niitä dll tiedostoja tehdään VC 2008:lla kun devissä oli pohja valmiina.
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 ==========
Sama ongelma ilmeni kääntäessäni yhtä Dll-juttua
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ä.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.
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.Eräs cb koodaaja wrote: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ä.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.
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?
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
Code: Select all
#define _BUILDING_OMADLL
#include "omadll.h"
int OD_plus(int number1, int number2)
{
return number1 + number2;
}
Code: Select all
teksti$="13"
numero = Int(teksti$)
Code: Select all
numero=13
teksti$ = Str(numero)
Heitetään riskillä:tuhoojabotti wrote:Dibalo saisko vielä käyttö esaimerkin kun en saanut toimimaan ja mikähän oisi hyvä 3d kirjasto (ja helppo )
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();
Tuo aiheuttaa jotain tällaista: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.homadll.cppCode: Select all
koodia...
Sitten vain includetat tuon projektiisi ja käytät sitä.Code: Select all
koodia...
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.
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 ==========
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...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();
Koodiini oli tullut kirjoitus virhe, kun en ollut testannut. Nyt se on korjattu.Eräs cb koodaaja wrote:Tuo aiheuttaa jotain tällaista: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.homadll.cppCode: Select all
koodia...
Sitten vain includetat tuon projektiisi ja käytät sitä.Code: Select all
koodia...
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.Missä vika?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 ==========