Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Tekstin piirto

Spongi [15.11.2004 11:07:18]

#

Elikkäs tällänen OpenGL tekstin piirto juttu VC6.0:ssa.

//Määritellään funktio...
void FONT_PRINT(int x, int y, char *string, int set, UINT texture, UINT displist);

//piirrettävät tekstit
char *textbuf[10] =
{
"eka rivi",
"toka rivi",
"kolmas rivi",
"neljäs rivi",
"viides rivi" // jne...
};

//ja itse funktion käyttö
FONT_PRINT(0, 0, textbuf[0], 0, fonttexture, font);

Mikähän mahtaa olla oikea muoto tuolle textbuf[0]:lle?
Kun se valittaa että ei voi muuttaa char *stringiä *[] muotoon tjsp.

Deewiant [15.11.2004 15:27:57]

#

Se * pois, eli pelkkä:

char textbuf[10] =

jne.

Spongi [15.11.2004 15:40:36]

#

? Eihän sen noin pitäis toimia... silloihan tulisi 10 merkkiä, haluan 10 riviä...

Spongi [15.11.2004 19:23:15]

#

Tajusin muuten itsekkin tuon, mutta... siis sama Vb:llä

Dim textbuf(0 to 9) as string

Luulin, että joku(+Deewiant) ohjelmointiputkassa osaa koodata c++:lla.

Deewiant [15.11.2004 20:15:52]

#

Ai, sori, en lukenut koko hommaa loppuun.

Ja jos C++:sta kerran puhutaan, hommahan hoituu niinkin yksinkertaisesti kuin:

#include <string>

string textbuf[10];

Ja tietenkin muutat itse funktion käyttämään samaa muotoa.

Mutta varsinaiseen ongelmaasi, en tajua missä vika on. Pikkuinen testiohjelma, joka kääntyy GCC:llä ja myös toimii ihan hyvin:

#include <stdio.h>

void print(char *);

int main()
{
	char *textbuf[3] = {
		"eka rivi",
		"toka rivi",
		"kolmas rivi"
	};
	print(textbuf[0]);
	print(textbuf[1]);
	print(textbuf[2]);
}

void print(char * string)
{
	printf(string);
	printf("\n");
}

En näe tässä mitään eroa omaan juttuusi. Ettei olisi kääntäjän vika? Kerro koko virheilmoitus, ja näytä rivi jossa se ilmenee.

Spongi [15.11.2004 20:35:40]

#

Yritän saada toimimaan, kiitos. Kämpillä kun ei ole nettiä vielä, niin mailaan huomenna, jouduin tuon koodinkin kirjottamaan paperille :P

Spongi [16.11.2004 10:01:04]

#

Sain toimimaan, syy ei tosin liittynyt mitenkään mihinkää mitä tuossa olin kirjoittanut, taulukkoa käytettäessä kirjoitin

textbuf[i]

ja olin määritellyt float i :) no muuntamalla se int i:ksi se toimi.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta