Gravar resources em uma DLL
Amigos,
Estou tentando gravar resources do tipo RCData em uma DLL, mas tah difícil de sair...
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 é :
Alguém pode me ajudar ?
Abraços.
Vinicius.
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
Curtidas 0
Respostas
Vinicius2k
12/05/2004
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.
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.
GOSTEI 0
Logado
12/05/2004
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.
Você poderia falar mais sobre estas funções?
Obrigado.
GOSTEI 0
Vinicius2k
12/05/2004
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+
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+
GOSTEI 0