Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z ref class

Witam, chciałem napisać aplikację która będzie przesyłać pakiety po sieci lan, będzie to jeden z modułów większej aplikacji. Piszę w Visual C++ 2008 Express Edition i mam problem z klasami zarządzanymi/niezarządzanymi. Otóż pojawia mi się taki błąd:
1>c:\projects\clientserwer_tcpipconnection\ServerSource.hpp(14) : error C2512: 'System::Net::Sockets::TcpListener::TcpListener' : no appropriate default constructor available 1> This diagnostic occurred in the compiler generated function 'TMojServer::TMojServer(void)' 1>ClientSerwer_TcpIpConnection.cpp
1>c:\projects\clientserwer_tcpipconnection\ServerSource.hpp(14) : error C2512: 'System::Net::Sockets::TcpListener::TcpListener' : no appropriate default constructor available 1> This diagnostic occurred in the compiler generated function 'TMojServer::TMojServer(void)'


a oto kod który stwarza problemy:
// ServerSource.hpp
#ifndef ServerSource_hpp
#define ServerSource_hpp

using namespace System;
using namespace System::Net;
using namespace System::Net::Sockets;

public ref class TMojServer
{
public: TcpListener Server;
};
#endif


Jest jakiś łatwy trick na obejście problemów z klasami zarządzanymi?Tomasz Starzyk edytował(a) ten post dnia 07.04.11 o godzinie 16:50

konto usunięte

Temat: problem z ref class

TcpListener nie ma bezargumentowego konstruktora. Pisząc "TcpListener Server" tworzysz instancję Serwer klasy TcpListener. Jest to równoważne z zapisem

TcpListener Server()

gdzie wyraźnie widać wywołanie konstruktora.

Nie jestem ekspertem od managed c++ ale zakładam, że powinieneś tam jednak trzymać wskaźnik, będzie to wyglądać jakoś tak:

TcpListener^ Server;

konto usunięte

Temat: problem z ref class

No i w ogóle daj sobie spokój z managed C++. Jeśli już to C# po prostu użyj. Albo "zwykłego" unmanaged C++.
Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z ref class

tylko że deklaracja TcpListener wygląda tak:
public ref class TcpListener

a ja na co dzień piszę w delphi i nie wiem jak ominąć managed a c# nie mogę użyć (jedno z postawionych wymagań to C++) :/
Tomasz M.

Tomasz M. never go full
retard!

Temat: problem z ref class

Tak jak kolega wyżej napisał, użyj zarządzanego wskaźnika (^).
Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z ref class

Dziękuje za pomoc CHWILOWO rozwiązało to moje problemy :-) ale z pewnością pojawią się kolejne :/
Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z ref class

no i pojawił się kolejny problem... nie rozumiem chyba do końca tego zarządzanego wskaźnika "^" ponieważ kompilator ciągle mi sypie błędami. Nie mogę nigdzie znaleźć nic na temat "^" po wpisaniu w google "c++ wskaźnik" oraz innych zapytań dostaje dużo informacji o "*" ale o "^" nigdzie nie mogę znaleźć informacji. Może ktoś wyjaśni o co chodzi z "^" albo poratuje jakimś linkiem?

konto usunięte

Temat: problem z ref class

Jeśli szukasz czegoś zarządzanego to szukaj C++/CLI.

http://www.codeproject.com/KB/mcpp/interiorpointers.aspx
Tomasz Starzyk

Tomasz Starzyk Student,
Politechnika Śląska
w Gliwicach,
elektryk (specj...

Temat: problem z ref class

Tego mi było trzeba!!! Dzięki Piotrze ;-)

Następna dyskusja:

Problem z dynamicznym przyd...




Wyślij zaproszenie do