Ł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 » |