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.
Se * pois, eli pelkkä:
char textbuf[10] =
jne.
? Eihän sen noin pitäis toimia... silloihan tulisi 10 merkkiä, haluan 10 riviä...
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.
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.
Yritän saada toimimaan, kiitos. Kämpillä kun ei ole nettiä vielä, niin mailaan huomenna, jouduin tuon koodinkin kirjottamaan paperille :P
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.