Isso é um teste quero ver se é possível.
A pergunta é: tem como ler esse ini sem ter que gerar um arquivo para ser lido pela função Hwg_GetIni ou equivalente?
Obs.: o arquivo teste.ini é gerado com sucesso (cópia do config.ini).
Tenho esse arquivo ini :
config.ini
Código: Selecionar todos
[AMBIENTE]
HARBOUR=3.4
[DATABASE]
RDD=DBFCDX
PATH=.\DB
CONFIG RCDATA CONFIG.INI
Para ler o resource:
Código: Selecionar todos
#define RT_RCDATA (10)
cIni := Hb_LoadResourceRawFile ( "CONFIG", RT_RCDATA )
hb_MemoWrit( "TESTE.INI", cIni )
cPath := Hwg_GetIni( 'DATABASE', 'PATH' ,'', hb_DirBase()+"TESTE.INI")
#pragma BEGINDUMP
#include <Windows.h>
#include <hbApi.h>
HB_FUNC( RESTOFILE )
{
static HRSRC hr;
static HGLOBAL hg;
hr = FindResource( NULL, (LPSTR) hb_parc( 1 ), RT_RCDATA );
if( ! ( hr == 0 ) )
{
hg = LoadResource( NULL, hr );
if( ! ( hg == 0 ) )
{
char *lpRcData=( char *)LockResource( hg );
hb_retc( lpRcData );
}
}
}
// HMG_LoadResourceRawFile ( cFileName, cTypeResource | nTypeResourceID )
HB_FUNC ( HB_LOADRESOURCERAWFILE )
{
HRSRC hResourceData;
HGLOBAL hGlobalResource;
LPVOID lpGlobalResource = NULL;
DWORD nFileSize;
TCHAR *FileName = (TCHAR*) hb_parc(1);
TCHAR *TypeResource = HB_ISCHAR (2) ? (TCHAR*) hb_parc(2) : MAKEINTRESOURCE ( hb_parni(2) );
hResourceData = FindResource ( NULL, FileName, TypeResource );
if ( hResourceData != NULL )
{
hGlobalResource = LoadResource ( NULL, hResourceData );
if ( hGlobalResource != NULL )
{
lpGlobalResource = LockResource ( hGlobalResource );
if ( lpGlobalResource != NULL )
{
nFileSize = SizeofResource ( NULL, hResourceData );
hb_retclen ( (const CHAR *) lpGlobalResource, (HB_SIZE) nFileSize );
}
FreeResource ( hGlobalResource );
}
}
if ( lpGlobalResource == NULL )
hb_retclen ( (const CHAR *) NULL, (HB_SIZE) 0 );
}
#pragma ENDDUMP

