Fórum Gravar resources em uma DLL #231842

12/05/2004

0

Amigos,

Estou tentando gravar resources do tipo RCData em uma DLL, mas tah difícil de sair...
function SaveLicenseCode(Key: String): Boolean;
var hLicInfo: THandle;
    LicCode: String;
begin
  LicCode:= GetLicenseCode(Key);
  hLicInfo:= BeginUpdateResource(´licinfo.dll´, False);
  RaiseLastOSError;
  UpdateResource(hLicInfo, RT_RCDATA, ´LICINFO´, 0, Pointer(LicCode), Length(LicCode));
  Result:= EndUpdateResource(hLicInfo, False);
end;

O ocorre um erro logo na 2ª Linha... a função BeginUpdateResource falha e o handle retorna 0... coloquei o RaiseLastOSError para pegar a mensagem e ela é :
System Error. Code : 120. Esta função só é válida no modo Win32.
...
Alguém pode me ajudar ?

Abraços.
Vinicius.


Vinicius2k

Vinicius2k

Responder

Posts

12/05/2004

Vinicius2k

Amigos,

Já descobri a causa do problema... as funções BeginUpdateResource, UpdateResource e EndUpdateResource só são aceitas sobre a plataforma NT... não funcionam em 9x... :?
A possível solução é a madRes (da madCollection) mas desconfio que os clones destas funções da API não funcionam corretamente...
Alguém usa a madRes com este tipo de finalidade?

Abraços.
Vinicius.


Responder

Gostei + 0

12/05/2004

Logado

oi, achei bem interessante o q vc ta utilizando, já desconfiava ser problema do sistema operacional.

Você poderia falar mais sobre estas funções?

Obrigado.


Responder

Gostei + 0

13/05/2004

Vinicius2k

Amigos,

Após algumas horas descobri o defeito, que, pra variar, era um erro bobo no meu código (numa outra função chamada antes dessa eu não estava descarregando a DLL com o FreeLibrary). As funções da madRes funcionam perfeitamente sobre as plataformas NT e 9x...

logado, as funções acima são para efetuar a gravação de recursos ( rcdata, bitmap, icon, etc.) dentro de executáveis ou DLLs... com elas vc pode excluir, atualizar, deletar qualquer tipo de recurso presente nestes arquivos... não posso falar muita coisa pq ainda estou aprendendo sobre o assunto... :wink:

T+


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar