WinExec i C++ Builder 6

0

Witam. Piszę poniważ nie mogę nigdzie znaleŹć odpowiedź na moje pytanie. Otóż gdy używam funkcji winexec(); w c++ builder, przy kompilowaniu zwraca mi błąd:
[C++ Warning] ms.cpp(21): W8066 Unreachable code
[C++ Error] ms.cpp(29): E2268 Call to undefined function 'WinExec'
[C++ Error] ms.cpp(29): E2451 Undefined symbol 'SW_SHOW'
[C++ Warning] ms.cpp(134): W8070 Function should return a value

Osobiście nie wiem co może to powodować. Wcześniej kompilowałem ten sam program w devc++ i działa mi do dzisiaj. Jednak po instalacji c++ builder a odinstalowaniu deva, kod nagle się nie kompiluje.

0

Tak jak jest napisane: funkcja WinExec i SH_SHOW są nieznane, czyli brak jest ich deklaracji. Czy masz w kodzie linię:

#include "windows.h" 

?

Swoją drogą to już przestarzała funkcja. Lepiej korzystać z CreateProcess:
http://msdn2.microsoft.com/en-us/library/ms682425(VS.85).aspx

0

Tak teraz działa, wcześniej zamiast windows.h ciągle wpisywałem window.h. Mała literówka.. Ehh.. Swoją drogą mam pytanie. W delphi jest tak, że jeżeli chcemy wyświetlić dane wpisane np. do pola tekstowego to w zdarzeniu dla buttona wpisujemy:
ShowMessage(Form.nazwapola);
Niestety w C++ to nie działa a nie mam takiego przykładu w swojej książce. Może jakaś mała pomoc?

Z góry bardzo dziękuję.

0
ShowMessage(Form->nazwapola);

Form jest wskaźnikiem dlatego musisz odwoływać się do jego pól przez "->" a nie "."

0

Napisałem tak jak poradziłeś ale:
[C++ Error] Unit1.cpp(20): E2342 Type mismatch in parameter 'Msg' (wanted 'const AnsiString', got 'TEdit *')
[C++ Error] Unit1.cpp(20): E2034 Cannot convert 'TEdit *' to 'AnsiString'

0
Patrykuss napisał(a)

Napisałem tak jak poradziłeś ale:
[C++ Error] Unit1.cpp(20): E2342 Type mismatch in parameter 'Msg' (wanted 'const AnsiString', got 'TEdit *')
[C++ Error] Unit1.cpp(20): E2034 Cannot convert 'TEdit *' to 'AnsiString'

Próbujesz wyświetlić pole typu TEdit*, a funkcja ShowMessage() przyjmuje za argument typ AnsiString. Domyślam się, że chodzi Ci o wyświetlenie tekstu wpisanego w pole tekstowe. Jeśli tak, to kod powinien wyglądać tak:

ShowMessage(Form->nazwapola->Text);

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.