Modnar23 Opublikowano 9 Maja 2007 Udostępnij Opublikowano 9 Maja 2007 Pisze bibliotekę w Turbo C++ dla GM, która zawiera dwie funkcje: zapis i odczyt z pliku binarnego. Korzystam z klasy TFileStream, której funkcja Read(<wskaźnik do bufora>,<ilość bitów>) nie pozwala mi używać jako bufora zmiennej typu char* - więc muszę używać zwykłej tablicy typu char. I tu właśnie pojawia się problem, z których do was przychodzę: jeśli chcę przekazać tekst z funkcji do GM, muszę przekonwertować odczytaną tablicę char na char*. Ponieważ GM wymaga aby funkcje biblioteczne zwracały tekst jako wartość typu char*. Znacie jakiś prosty sposób na taką konwersję? Szukam cały czas w google, ale nie znajduję nigdzie satysfakcjonującej odpowiedzi. Może ktoś z was poradził sobie już czymś takim? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Kubx Opublikowano 10 Maja 2007 Udostępnij Opublikowano 10 Maja 2007 Nie znam się za bardzo na C++ ale można chyba dać tak: (char)tablica Poczytaj zresztą to: https://gmclan.org/index.php?czytajart=40 Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Modnar23 Opublikowano 13 Maja 2007 Autor Udostępnij Opublikowano 13 Maja 2007 Dzięki za odpowiedź. Tej metody już próbowałem, ale konwersja nie przebiega prawidłowo, bo GM otrzymuje zamiast żądanego tekstu ciąg przypadkowych znaków. Na szczęście na oficjalnym forum GM znalazłem pewne rozwiązanie i podam je dla ogólnej wiadomości: jeśli chcemy zwrócić do GM tablicę znaków, to musi być one typu: static char. Niestety nie da się tak zadeklarować argumentów funkcji bo kompilator wywali błąd. Przykład konkatenacji tekstów z oficjalnego forum: export char* add_text (char* str1,char* str2) { char* text = new char[1024]; sprintf(text,"%s%s",str1,str2); return text; } static char nazwa_tablicy[rozmiar] przy czym rozmiar: 0 > rozmiar <= 1024 - gdyż większe wartości mogą stworzyć problemy z pamięcią typu wyciek albo przepełnienie stosu itp. lub po prostu GM otrzyma dane nie takie jak chcemy. Temat można zamknąć. Wielkie dzięki za pomoc :angry: . Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się