Struktura jako argument funkcji

Struktura jako argument funkcji
M8
  • Rejestracja:około 14 lat
  • Ostatnio:3 miesiące
  • Postów:151
0

Witam

Piszę mały programik w BCB2009. Ma on za zadanie wydruku formularzy z BMP z uzupełnionymi danymi typu data, asortyment, itp

Stworzyłem taki program:

funkcja drukująca

Kopiuj
void druk_form (String plik, dt &struct)
{
//
// ciało funkcji
//
}

W strukturze umieściłem dane jakie mają się pojawić na wydrukowanym formularzu, struktura zawiera tekst do wydruku wraz z pozycją jaka ma być na wydruku.

Kopiuj
struct dane {String text;
				int x;
				int y1;
				int y2;};

dane data_wydr;

data_wydr.text = DateTimePicker1->Date;
data_wydr.x = 2;
data_wydr.y1 = 2;
data_wydr.y2 = 2;

Funkcję drukującą wywołuję tak:

Kopiuj
druk_form ("nazwa_pliku", data_wydr);

Niestety, nie mogę wywołać funkcji, kompilator krzyczy o błędzie w definicji argumentów funkcji

[BCC32 Error] Unit1.cpp(46): E2451 Undefined symbol 'String'

Zaznaczając błąd w definicji funkcji.

void druk_form (String plik, dt &struct)

Czy możecie naprowadzić mnie w czym robię błąd ?


GG: 28287812
Skype: marcinmn.s
edytowany 1x, ostatnio: marcin82w
S3
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 13 lat
  • Postów:22
0

String musisz mieć z małej litery

M8
  • Rejestracja:około 14 lat
  • Ostatnio:3 miesiące
  • Postów:151
0

Typ danej String pisze się z dużej litery, BCB słowo string nie rozpoznaje jako typ danych.
Nawet po zmianie na mała literę kompilator krzyczy

[BCC32 Error] Unit1.h(15): E2451 Undefined symbol 'string'


GG: 28287812
Skype: marcinmn.s
S3
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 13 lat
  • Postów:22
0

A masz wszystkie pliki nagłówkowe zdefiniowane co trzeba ?

edytowany 1x, ostatnio: sylwek3100
M8
  • Rejestracja:około 14 lat
  • Ostatnio:3 miesiące
  • Postów:151
0

Według mnie tak.
Gdy definiuję funkcję zawierającą tylko jeden argument "nazwa_pliku" wszystko działa poprawnie.

Kopiuj
void druk_form (String plik)
{
}

Wywołanie funkcji jest takie:

Kopiuj
druk_form ("jakis_plik.BMP");

Działa prawidłowo.

Po dodaniu struktury jako argument funkcji kompilator nie rozpoznaje typu String.


GG: 28287812
Skype: marcinmn.s
S3
  • Rejestracja:prawie 15 lat
  • Ostatnio:około 13 lat
  • Postów:22
0

Masz taką strukture jak dt i właściwie co tam robi struct w argumencie ?
Edit: Nie powinno tam być dt&zmienna czasem ?

edytowany 2x, ostatnio: sylwek3100
KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
0

AnsiString albo std::string


░█░█░█░█░█░█░█░█░█░█░█░
M8
  • Rejestracja:około 14 lat
  • Ostatnio:3 miesiące
  • Postów:151
0
sylwek3100 napisał(a)

Masz taką strukture jak dt i właściwie co tam robi struct w argumencie ?
Edit: Nie powinno tam być dt&zmienna czasem ?

Chciałem do funkcji przekazać całą strukturę zawierającą tekst do wyświetlenia i współrzędne, oczywiście można to zrobić podając te dane jako oddzielne argumenty, ale jeżeli ich będzie 10 to argumentów musi być 30, a tak podając tylko strukturę funkcja wyłuska sobie wszystkie dane wewnątrz.

Próbowałem różnymi sposobami napisać funkcję, ale nie potrafię prawidłowo przekazać struktury do funkcji jako argumentu.


GG: 28287812
Skype: marcinmn.s
edytowany 1x, ostatnio: marcin82w
lukasz1235
  • Rejestracja:ponad 17 lat
  • Ostatnio:ponad 8 lat
  • Postów:1105
0

Powinno być

Kopiuj
void druk_form (String plik, dane & nazwaZmiennej)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.