• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Borland C++ 10.2 i SFML

VPS Starter Arubacloud
0 głosów
1,142 wizyt
pytanie zadane 4 lipca 2017 w C i C++ przez MsMaciek123 Pasjonat (24,760 p.)

Siema. Mam Borland Builder C++ 10.2 i chce zainstalować na nim SFML. Wszystko fajnie działa lecz po wklejeniu pewnego kodu wywala sporo błędów (kod z Exaples/voID)

 

#pragma hdrstop
#pragma argsused

#ifdef _WIN32
#include <tchar.h>
#else
  typedef char _TCHAR;
  #define _tmain main
#endif

#include <iostream>
#include <cstdlib>
#include <iostream.h>
#include <stdio.h>

 int _tmain(int argc, _TCHAR* argv[])
{

////////////////////////////////////////////////////////////
// Headers
////////////////////////////////////////////////////////////
#include <SFML/Audio.hpp>
#include <SFML/Network.hpp>
#include <iostream>


const sf::Uint8 audioData   = 1;
const sf::Uint8 endOfStream = 2;


////////////////////////////////////////////////////////////
/// Specialization of audio recorder for sending recorded audio
/// data through the network
////////////////////////////////////////////////////////////
class NetworkRecorder : public sf::SoundRecorder
{
public:

    ////////////////////////////////////////////////////////////
    /// Constructor
    ///
    /// \param host Remote host to which send the recording data
    /// \param port Port of the remote host
    ///
    ////////////////////////////////////////////////////////////
    NetworkRecorder(const sf::IpAddress& host, unsigned short port) :
    m_host(host),
    m_port(port)
    {
    }

    ////////////////////////////////////////////////////////////
    /// Destructor
    ///
    /// \see SoundRecorder::~SoundRecorder()
    ///
    ////////////////////////////////////////////////////////////
    ~NetworkRecorder()
    {
        // Make sure to stop the recording thread
        stop();
    }

private:

    ////////////////////////////////////////////////////////////
	/// \see SoundRecorder::onStart
    ///
    ////////////////////////////////////////////////////////////
    virtual bool onStart()
    {
        if (m_socket.connect(m_host, m_port) == sf::Socket::Done)
        {
            std::cout << "Connected to server " << m_host << std::endl;
            return true;
        }
        else
        {
            return false;
        }
    }

    ////////////////////////////////////////////////////////////
    /// \see SoundRecorder::onProcessSamples
    ///
    ////////////////////////////////////////////////////////////
    virtual bool onProcessSamples(const sf::Int16* samples, std::size_t sampleCount)
    {
        // Pack the audio samples into a network packet
        sf::Packet packet;
        packet << audioData;
        packet.append(samples, sampleCount * sizeof(sf::Int16));

        // Send the audio packet to the server
        return m_socket.send(packet) == sf::Socket::Done;
    }

    ////////////////////////////////////////////////////////////
    /// \see SoundRecorder::onStop
    ///
    ////////////////////////////////////////////////////////////
    virtual void onStop()
    {
        // Send a "end-of-stream" packet
        sf::Packet packet;
        packet << endOfStream;
        m_socket.send(packet);

        // Close the socket
        m_socket.disconnect();
    }

    ////////////////////////////////////////////////////////////
    // Member data
    ////////////////////////////////////////////////////////////
    sf::IpAddress  m_host;   ///< Address of the remote host
    unsigned short m_port;   ///< Remote port
    sf::TcpSocket  m_socket; ///< Socket used to communicate with the server
};


////////////////////////////////////////////////////////////
/// Create a client, connect it to a running server and
/// start sending him audio data
///
////////////////////////////////////////////////////////////
void doClient(unsigned short port)
{
    // Check that the device can capture audio
    if (!sf::SoundRecorder::isAvailable())
    {
        std::cout << "Sorry, audio capture is not supported by your system" << std::endl;
        return;
    }

    // Ask for server address
    sf::IpAddress server;
    do
    {
        std::cout << "Type address or name of the server to connect to: ";
        std::cin  >> server;
    }
    while (server == sf::IpAddress::None);

    // Create an instance of our custom recorder
    NetworkRecorder recorder(server, port);

    // Wait for user input...
    std::cin.ignore(10000, '\n');
    std::cout << "Press enter to start recording audio";
    std::cin.ignore(10000, '\n');

    // Start capturing audio data
    recorder.start(44100);
    std::cout << "Recording... press enter to stop";
    std::cin.ignore(10000, '\n');
    recorder.stop();
}

	getchar();
	return 0;
}

Błędy:
 

Checking project dependencies...
Compiling Project1.cbproj (Debug, Win32)
bcc32 command line for "File1.cpp"
  c:\program files (x86)\borland\radstudio10.2\bin\bcc32.exe -D_DEBUG -n.\Win32\Debug -I"c:\program files (x86)\borland\radstudio10.2\include";
  "c:\program files (x86)\borland\radstudio10.2\include\dinkumware";"c:\program files (x86)\borland\radstudio10.2\include\windows\crtl";"c:\program 
  files (x86)\borland\radstudio10.2\include\windows\sdk";"c:\program files (x86)\borland\radstudio10.2\include\windows\rtl";"c:\program files 
  (x86)\borland\radstudio10.2\include\windows\vcl";"c:\program files (x86)\borland\radstudio10.2\include\windows\fmx";
  C:\Users\Public\Documents\Embarcadero\Studio\19.0\hpp\Win32;C:\Users\Public\Documents\Embarcadero\Studio\19.0\hpp\Win32 -y -Q -k -r- -c -tC -tM -C8 
  -o.\Win32\Debug\File1.obj -w-par -Od -v -vi- -H=.\Win32\Debug\Project1.pch -H File1.cpp 
[bcc32 Error] Config.hpp(202): E2141 Declaration syntax error
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(22): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Audio.hpp
    Audio.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/System.hpp
    System.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Config.hpp
    Config.hpp(202): namespace sf
[bcc32 Error] basetsd.h(73): E2215 Linkage specification not allowed
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(22): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Audio.hpp
    File1.cpp(23): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network.hpp
    Network.hpp(33): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/Ftp.hpp
    Ftp.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/TcpSocket.hpp
    TcpSocket.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/Socket.hpp
    Socket.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/SocketHandle.hpp
[bcc32 Error] basetsd.h(73): E2040 Declaration terminated incorrectly
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(22): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Audio.hpp
    File1.cpp(23): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network.hpp
    Network.hpp(33): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/Ftp.hpp
    Ftp.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/TcpSocket.hpp
    TcpSocket.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/Socket.hpp
    Socket.hpp(32): #include c:\program files (x86)\borland\radstudio10.2\include\SFML/Network/SocketHandle.hpp
[bcc32 Error] File1.cpp(28): E2316 'Uint8' is not a member of 'sf'
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
[bcc32 Error] File1.cpp(28): E2040 Declaration terminated incorrectly
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
[bcc32 Error] File1.cpp(36): E2316 'SoundRecorder' is not a member of 'sf'
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(35): class NetworkRecorder
[bcc32 Error] File1.cpp(36): E2303 Type name expected
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(35): class NetworkRecorder
[bcc32 Error] File1.cpp(46): E2316 'IpAddress' is not a member of 'sf'
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(35): class NetworkRecorder
[bcc32 Error] File1.cpp(46): E2293 ) expected
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(35): class NetworkRecorder
[bcc32 Error] File1.cpp(118): E2316 'TcpSocket' is not a member of 'sf'
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(35): class NetworkRecorder
[bcc32 Error] File1.cpp(118): E2040 Declaration terminated incorrectly
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
    File1.cpp(35): class NetworkRecorder
[bcc32 Error] File1.cpp(128): E2141 Declaration syntax error
  Full parser context
    File1.cpp(17): parsing: int main(int,char * *)
Failed
Elapsed time: 00:00:00.7

 

2 odpowiedzi

+4 głosów
odpowiedź 4 lipca 2017 przez j23 Mędrzec (194,920 p.)

Łoo matko! Jak to ma się skompilować, jeśli w funkcji _tmain załączasz pliki nagłówkowe i definiujesz klasy? Jak już wklejasz jakiś przykładowy kod do projektu, to rób to porządnie.

0 głosów
odpowiedź 4 lipca 2017 przez MetGang Nałogowiec (34,360 p.)

Siema. Mam Borland Builder C++ 10.2 i chce zainstalować na nim SFML. 

Parafrazując: "Siema. Mam Fiata 126p i chcę do niego zamontować silnik od Mercedes SL500."

Zadanie na dziś. Znajdź sprzeczność albo cierp.

komentarz 7 lipca 2017 przez j23 Mędrzec (194,920 p.)
Hmm... u Ciebie na dysku?
komentarz 7 lipca 2017 przez MsMaciek123 Pasjonat (24,760 p.)
nie wiem
komentarz 7 lipca 2017 przez j23 Mędrzec (194,920 p.)
Haha!

Przecież C++ Builder ma dokumentację z opisem klas VCL. Pewnie jest tam też dokumentacja dla INDY, bo z tego, co pisałeś, wynika, że ta biblioteka wchodzi w skład środowiska. Po prostu sprawdź, co tam masz.
komentarz 8 lipca 2017 przez MsMaciek123 Pasjonat (24,760 p.)
edycja 9 lipca 2017 przez MsMaciek123

Gdzie mam wejść ,bo w ogóle nie czaje.

poprawiłem

komentarz 8 lipca 2017 przez j23 Mędrzec (194,920 p.)

To jak, bierzesz się za programowanie, a nie potrafisz podstawowych rzeczy ogarnąć? Na górze masz menu Help. Tam zapewne jest to, czego szukasz.

Inna opcja: postaw kursor (w edytorze) na nazwie klasy/metody i naciśnij F1, otworzy się pomoc z opisem... w każdym razie powinna (kiedyś tak było).

 

PS. pisze się w ogóle i nie czaję ("nie" z czasownikami piszemy rozłącznie).

Podobne pytania

0 głosów
0 odpowiedzi 2,655 wizyt
pytanie zadane 2 września 2017 w C i C++ przez gabi_15 Początkujący (370 p.)
0 głosów
1 odpowiedź 361 wizyt
pytanie zadane 22 marca 2017 w C i C++ przez Milesq Nałogowiec (32,020 p.)
0 głosów
3 odpowiedzi 228 wizyt
pytanie zadane 24 listopada 2016 w C i C++ przez dorgovor Użytkownik (580 p.)

92,455 zapytań

141,263 odpowiedzi

319,099 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...