Środowisko: C++ XE5
Mam taki ciekawy problem. Otóż postanowiłem przywrócić do życia jeden ze swoich starszych programów napisany jeszcze BCB 6. Wczytałem projekt do XE5 i całość sobie ładnie działa. Program się kompiluje, uzyskuje nazwę hosta:
w zmiennej s znajduje się nazwa hosta W540. No i OK. Wpadłem na genialny pomysł przepisania kodu od nowa od razu w XE5, tak aby nie ciągnąć jakichś śmieci z BCB6. No i dochodzimy do problemu, którego nie powinno być. Otóż ta sama część kodu odpowiedzialna za pobranie nazwy hosta teraz nie chce działać:
w zmiennej s są same zera. W pliku nagłówkowym podstawiłem dokładnie te same biblioteki co w projekcie z BCB6:
Na górze obrazka są biblioteki z BCB6, a na dole zakomentowane biblioteki XE5.
Co robię źle?
0
0
Teoretycznie nie powinno być takiej szansy (nie powinno się skompilować), ale czy może to być kwestia wielkości znaku? Tzn. wchar i char?
1
Nie zapomniałeś o wywołaniu wcześniej WSAStartup
? Np:
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
No i na koniec WSACleanup
;
0
Dzięki wielkie. Po dodaniu tych 3 linii działa normalnie.
Wcześniej nie miałem tego wpisane i zastanawiam się czemu przechodziło kompilację bez błędu i działało.