Fórum Gravar resources em uma DLL #231842
12/05/2004
0
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 é :
Alguém pode me ajudar ?
Abraços.
Vinicius.
Vinicius2k
Curtir tópico
+ 0Posts
12/05/2004
Vinicius2k
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
12/05/2004
Logado
Você poderia falar mais sobre estas funções?
Obrigado.
Gostei + 0
13/05/2004
Vinicius2k
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
Clique aqui para fazer login e interagir na Comunidade :)