Struktura jako argument funkcji

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

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.

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:

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 ?

0

String musisz mieć z małej litery

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'

0

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

0

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

void druk_form (String plik)
{
}

Wywołanie funkcji jest takie:

druk_form ("jakis_plik.BMP");

Działa prawidłowo.

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

0

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

0

AnsiString albo std::string

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.

0

Powinno być

void druk_form (String plik, dane & nazwaZmiennej)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0