Ładowanie .rc
Ostatnio zmodyfikowano 2017-05-02 18:38
marcolo2307 Temat założony przez niniejszego użytkownika  | 
Ładowanie .rc » 2017-05-02 17:11:13 Cześć! Działa: #include <windows.h> #include <SFML/Graphics.hpp>
  void * data; unsigned int size;
  void load(  ) {     HRSRC hRc = FindResource( GetModuleHandle( NULL ), MAKEINTRESOURCE( 1001 ), MAKEINTRESOURCE( 10 ) );     if( hRc == NULL )          exit( - 1 );          HGLOBAL hResource = LoadResource( GetModuleHandle( NULL ), hRc );     data = LockResource( hResource );     size = SizeofResource( GetModuleHandle( NULL ), hRc ); }
  int main() {                    load( data, size );          sf::Font font;     if( !font.loadFromMemory( data, size ) )          return - 4;          sf::Text text( "test", font );          sf::RenderWindow wnd( { 800, 600 }, "test", sf::Style::Default );     sf::Event event;     while( wnd.isOpen() )     {         while( wnd.pollEvent( event ) )              if( event.type == sf::Event::Closed ) wnd.close();                  wnd.clear();         wnd.draw( text );         wnd.display();     } }
  Nie działa: #include <windows.h> #include <SFML/Graphics.hpp>
  void load( void * data, unsigned int & size ) {     HRSRC hRc = FindResource( GetModuleHandle( NULL ), MAKEINTRESOURCE( 1001 ), MAKEINTRESOURCE( 10 ) );     if( hRc == NULL )          exit( - 1 );          HGLOBAL hResource = LoadResource( GetModuleHandle( NULL ), hRc );     data = LockResource( hResource );     size = SizeofResource( GetModuleHandle( NULL ), hRc ); }
  int main() {     void * data;     unsigned int size;          load( data, size );          sf::Font font;     if( !font.loadFromMemory( data, size ) )          return - 4;          sf::Text text( "test", font );          sf::RenderWindow wnd( { 800, 600 }, "test", sf::Style::Default );     sf::Event event;     while( wnd.isOpen() )     {         while( wnd.pollEvent( event ) )              if( event.type == sf::Event::Closed ) wnd.close();                  wnd.clear();         wnd.draw( text );         wnd.display();     } }
  Dlaczego? W niedziałającej wersji SFML nie chce utworzyć maski dla czcionki. Jedyne co zmieniam to sposób przekazywania void* data i size_t size.  | 
 | 
j23  | 
» 2017-05-02 18:29:40 void load( void * & data, unsigned int & size ) {...}  | 
 | 
marcolo2307 Temat założony przez niniejszego użytkownika  | 
» 2017-05-02 18:38:10 Cóż... Działa... Zastanawiałem się nad tym, ale z tego co czytałem jedyną zmianą przy referencjach na wskaźnik jest oszczędność na kopiowaniu... Przecież operacja i tak dzieje się na adresie wskaźnika, więc dlaczego wymagana jest referencja?  | 
 | 
|  « 1 »  |