BBStrings in C++ umwandeln OHNE Bmax zu benutzten?
Übersicht

![]() |
klinBetreff: BBStrings in C++ umwandeln OHNE Bmax zu benutzten? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo Leute,
fürs erste: ja ich weiß nicht wohin damit jedoch hat es halb Bmax halb C++ zu tun. Falls dies nicht der richtige Topic ist, dann tuts mir leid. und zwar: Ich bin grade ein wenig mit detouren am rumspielen. Und als ist DrawText detourt hatte, wollte ich den Text abfragen bzw. ändern. Jedoch kann ich nicht einfach DrawText_N("solala"...) machen, sondern muss den CString (C String) in einen BBString umwandeln. Ich habe nun alle brl.system headern importet und auf glück gehofft. Jedoch importet er nicht die *.c dateien (Funktionen sind dort um z.B. den BBString in einen CString umzuwandeln) nicht. Das eigenartige dabei ist, sobald ich diese *.c dateien importe tauchen LINK fehlern auf und funktionen werden weiterhin nicht erkannt. Es sind so viele unterschiedliche Fehlern, das man es kaum glauben kann! Zu meiner Frage: Gibt es eine einfache möglichkeit um einen verdammten BBString in einen CString und andersrum umzuwandeln? Wenn ihr jedenfalls schon solche fertig dateien habt oder ich diese .c dateien i-wie anders includen muss (benutzte NUR #include) dann nur zu mit den Antworten ![]() THX MFG Klin P.S. sitzte hier schon seit knapp 6 Stunden um nur CString in BBString umzuwandeln >.< |
||
![]() |
kog |
![]() Antworten mit Zitat ![]() |
---|---|---|
Solltest mal einbisschen anfangen BMax zu erforschen, ein frühes Zusammenbasteln von ner Funktion:
Code: [AUSKLAPPEN] char *ReadBMax(BBString *s)
{ char *buf; buf=new char[s->length+1]; for(int i=0;i<s->length;i++) { buf[i]=(char)s->buf[i]; } buf[s->length]=0; return buf; } BBString *CreateBMax(char* val) { int sz=strlen(val); BBGCMem *q=(BBGCMem*)malloc( sizeof(BBString)+sz*sizeof(BBChar)); q->pool=NULL; q->refs=0x40000000; BBString *s=(BBString*)q; s->length=sz; s->refs=0x40000000; for(int i=0;i<sz;i++) { s->buf[i]=(unsigned char)val[i]; } return s; } Vielleicht kannst du damit was anfangen *edit* Was man erwähnen sollte, es ist nicht ganz GC zufriedenstellend ... Noch eine Funktion: Code: [AUSKLAPPEN] void DrawText(char*str,float x,float y)
{ BBString *s=CreateBMax(str); bbDrawText(s,x,y); s->refs=0x80000000; delete[] s->buf; free(s->buf); free(s); return; } p.S.: is nurn rumgebastle... auf gutes gelingen |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
In BMax:
Code: [AUSKLAPPEN] Global str:Byte Ptr = "abc".toCString()
Global bla:String = String.FromCString(str) In C: Code: [AUSKLAPPEN] #include <brl.mod/blitz.mod/blitz.h>
#include <stdio.h> BBString* bla(BBString *blub) { char* str = bbStringToCString(blub); printf("%s\n", str); BBString* str2 = bbStringFromCString("Hallo"); return str2; } |
||
![]() |
klin |
![]() Antworten mit Zitat ![]() |
---|---|---|
BtbN hat Folgendes geschrieben: ...
In C: Code: [AUSKLAPPEN] #include <brl.mod/blitz.mod/blitz.h>
#include <stdio.h> BBString* bla(BBString *blub) { char* str = bbStringToCString(blub); printf("%s\n", str); BBString* str2 = bbStringFromCString("Hallo"); return str2; } Wenn ich ja das mache kommen ja komischerweise diese LNK fehlern: Code: [AUSKLAPPEN] main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_bbStringFromCString" in Funktion ""struct BBString * __cdecl bla(struct BBString *)" (?bla@@YAPAUBBString@@PAU1@@Z)".
main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "_bbStringToCString" in Funktion ""struct BBString * __cdecl bla(struct BBString *)" (?bla@@YAPAUBBString@@PAU1@@Z)". P.S. kog's hat funktioniert. Wenn es jedoch so funktionieren würde (BtbN sein code), wäre es besser. |
||
![]() |
BtbN |
![]() Antworten mit Zitat ![]() |
---|---|---|
Das sieht eher nach einem VC-Fehler aus, damit kannst du das eh vergessen. Du must das ganze schon über Bmax kompilieren lassen, damit er den selben compiler nimmt und die richtigen libs einlinkt.
Lern erstmal C und C++, bevor du mit sowas anfängst. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group