[WinAPI] Problem z dodaniem zasobów
Ostatnio zmodyfikowano 2012-07-08 14:58
akcza Temat założony przez niniejszego użytkownika |
[WinAPI] Problem z dodaniem zasobów » 2012-07-08 14:12:44 Witam,
mam problem z dodaniem zasobów do projektu.
Untitled1.rc:
1 10 "a.txt"
HRSRC uchwyt = FindResource( hInstance, MAKEINTRESOURCE( 1 ), 10);
Błąd:
2 C:\Users\Sara\Documents\Untitled1.rc [Resource error] syntax error
C:\Users\Sara\Documents\Makefile.win [Error] [Project2_private.res] Error 1 (if this is the only error: please check your library includes)
Środowisko: Dev-C++ |
|
DejaVu |
» 2012-07-08 14:25:06 |
|
akcza Temat założony przez niniejszego użytkownika |
» 2012-07-08 14:27:05 Właśnie się na tym kursie wzorowałem - jednak coś nie działa... Nawet po skopiowaniu "żywcem" z podanego tutka nadal się nie kompiluje. Może błąd kompilatora? Może biblioteki brakuje? |
|
DejaVu |
» 2012-07-08 14:40:50 Kod żywcem przekopiowany rzadko kiedy działa przy projektach wymagających więcej niż jednego pliku. Też kiedyś używałem tego tutoriala i trochę musiałem powalczyć aby osiągnąć sukces. Zobacz kod na tej drugiej stronie co podałem. Poza tym określ się co chcesz konkretnie wyciągnąć z resource-ów. Jeżeli plik to daję fragmenty CodeDesk-a:
#ifndef __resources_rh__ #define __resources_rh__
#define IDI_APP 5000 #define IDI_APP_CHANGED 5001 #define IDI_TOPIC_OPEN 5002 #define IDI_TOPIC_OPENI 5003 #define IDI_TOPIC_OPENV 5004 #define IDI_TOPIC_OPENVI 5005 #define IDI_TOPIC_CLOSED 5006 #define IDI_TOPIC_CLOSEDI 5007 #define IDI_TOPIC_CLOSEDV 5008 #define IDI_TOPIC_CLOSEDVI 5009 #define IDBIN_DOKUMENTACJA 5010
#define IDM_FILE 6000 #define ID_FILE_FIND 6001 #define ID_FILE_EXIT 6002
#endif
#include "resources.rh"
IDI_APP ICON "app.ico" IDI_APP_CHANGED ICON "app-changed.ico" IDI_TOPIC_OPEN ICON "open.ico" IDI_TOPIC_OPENI ICON "open_i.ico" IDI_TOPIC_OPENV ICON "open_v.ico" IDI_TOPIC_OPENVI ICON "open_vi.ico" IDI_TOPIC_CLOSED ICON "closed.ico" IDI_TOPIC_CLOSEDI ICON "closed_I.ico" IDI_TOPIC_CLOSEDV ICON "closed_V.ico" IDI_TOPIC_CLOSEDVI ICON "closed_VI.ico" IDBIN_DOKUMENTACJA RCDATA "dokumentacja.xml"
IDM_FILE MENU { POPUP "&Plik" { MENUITEM "Zakończ", ID_FILE_EXIT } }
void CCodeDeskApp::loadSearchDB() { HINSTANCE hInstance =::GetModuleHandle( NULL ); HRSRC hResource =::FindResource( hInstance, MAKEINTRESOURCE( IDBIN_DOKUMENTACJA ), RT_RCDATA ); if( !hResource ) return; DWORD iSize =::SizeofResource( hInstance, hResource ); HGLOBAL hData =::LoadResource( hInstance, hResource ); if( !hData ) return; memory::ChunkedMemory < char > binResult; LPVOID pData =::LockResource( hData ); if( pData ) { binResult.push_back( reinterpret_cast < char *>( pData ), iSize ); UnlockResource( hData ); } ::FreeResource( hData ); m_iGoogleVirtualKey = m_virtualDB.insert( new codedesk::CGoogleVR() ); binResult.push_back( 0 ); codedesk::CParseXml parse; if( !parse.parseFromContent( binResult.getArray() ) ) return; codedesk::CDataDocumentation doc = parse.getDoc(); BOOST_FOREACH( codedesk::CDataDocumentation::RRow & row, doc.rows() ) { codedesk::CDocumentationVR * pItem = new codedesk::CDocumentationVR( m_searchEngine ); pItem->setup( row ); codedesk::CVirtualDB::KeyT iKey = m_virtualDB.insert( pItem ); m_searchEngine.insert( row.iFullTitleId, row.sFullTitle, iKey ); m_searchEngine.insert( row.iShortDescriptionId, row.sShortDescription, iKey ); } }
|
|
akcza Temat założony przez niniejszego użytkownika |
» 2012-07-08 14:58:28 Ok, już wiem co zrobiłem nie tak. Głupi błąd: HRSRC uchwyt = FindResource( hInstance, MAKEINTRESOURCE( 1 ), 10); To powinno być w pliku .cpp, a nie .rc :-) Dzięki za pomoc. Do zamknięcia. |
|
« 1 » |