[VS .net C++] Binary resource includen -> hoe?

Pagina: 1
Acties:

  • DieterVDW
  • Registratie: Juli 2002
  • Laatst online: 12-02-2017
Hallo,

Ik ben nu al een tijdje aan het sukkelen om een binary resource mee te compilen in mijn binary.
Het gaat om een bestandje met raw gegevens dat moet opgenomen worden in de dll.
De context is native C++ in Visual Studio .net .

Als ik de procedure volg zoals beschreven in de MSDN:
Add resource -> Import , dan wordt de resource file netjes aangemaakt met een verwijzing maar mijn databestand, maar als ik dan de resource of het project probeer te compileren, dan krijg ik de volgende fout:
code:
1
error RC2135 : file not found: "LOGO.RAW"


Je zou denken "simpel, gewoon ergens een verkeerd pad of zo" .
Het bestand staat zowel in de project directory als in de build directory.
Maar blijkbaar, als ik in MSDN blader, wordt deze fout ook wel door andere dingen veroorzaakt...

Dit is het stuk uit de rc file dat betrekking heeft op de data:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/////////////////////////////////////////////////////////////////////////////
// Dutch (Belgium) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NLB)
#ifdef _WIN32
LANGUAGE LANG_DUTCH, SUBLANG_DUTCH_BELGIAN
#pragma code_page(1252)
#endif //_WIN32

/////////////////////////////////////////////////////////////////////////////
//
// Data
//

IDR_OVERLAY                                     "logo.raw"
#endif    // Dutch (Belgium) resources
/////////////////////////////////////////////////////////////////////////////

Het feit dat dit in het gedeelte van de "Dutch (Belgium) resources" staat lijkt me al niet koosjer...

Na wat gegoogle heb ik een andere aanpak gevonden:
Ik zet handmatig de volgende regel in de resource file:
code:
1
BINARYDATA       IDR_OVERLAY      "logo.raw"

IDR_OVERLAY is een identifier die gedefinieerd wordt in resource.h .

In dit geval kan ik de resource en het project compileren, maar ik vind niet de juiste parameters om dmv FindResource de handler naar de resource te pakken te krijgen.
Deze regel lijkt me het meest geschikt, maar werkt dus NIET en geeft een NULL:
code:
1
    HRSRC image_rsrc = FindResource(NULL, MAKEINTRESOURCE(IDR_OVERLAY), RT_RCDATA);


Mijn vragen:
Welke van de 2 aanpakken is de juiste?
Hoe zorg ik ervoor dat dit werkt?
En als iemand me hierrond eens wat duidelijke informatie kan bezorgen: héél erg bedankt!