Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Providers
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 15/06/2005
josecamposch josecamposch is offline
Registrado
 
Join Date: Jun 2005
Posts: 1
Poder: 0
josecamposch Va por buen camino
Midas.dll provoca erro en kernel32.dll

Buenas. Tengo una aplicación que funciona perfectamente en Windows 2000. Es necesario instalarla como usuario administrador, pero luego se ejecuta sin problemas ya seas administrador o usuario sin privilegios. En Windows XP, hice unas pruebas iniciales y todo iba bien, pero en algunos equipos, al intentar arrancar la aplicación, exclusivamente si se hace con un usuario que no es administrador, me da un error de protección en kernel32.dll (lo provoca la midas.dll). La cuestión es que he observado que en Windows 2000 y en el equipo con XP que iba todo bien la versión del kernel32.dll es la 5.0.2195.xxxx (de unos 700 Kb de tamaño) mientras que en los equipos con XP donde no funciona, la versión de kernel32.dll es más moderna, 5.1.2600 (con 1Mb de tamaño).

¿Alguna pista sobre como arreglar esto?

Gracias de antemano
Reply With Quote
  #2  
Old 15/06/2005
Investment's Avatar
Investment Investment is offline
Miembro
 
Join Date: May 2003
Posts: 378
Poder: 24
Investment Va por buen camino
Post

Este procedinmiento te registra Midas.dll para que no te de ese error.

Code:
procedure TFRMain.RegisterAxLib;
 type
   TRegProc = function : HResult; stdcall;
   TRegAction = (raReg, raUnreg);
 
 const
   ProcName: array[TRegAction] of PChar = (
 	'DllRegisterServer', 'DllUnregisterServer');
 
 Var
   RegAction: TRegAction;
   LibHandle: THandle;
   FileName: String;
   RegProc: TRegProc;
 begin
   FileName:='Ojo, Escribe la ruta\Midas.dll'; // Normalmente c:\windows\system32\Midas.dll
   RegAction:=raReg;
   LibHandle := LoadLibrary(PChar(FileName));
   if LibHandle = 0 then raise Exception.CreateFmt('Error', [FileName]);
   try
 	@RegProc := GetProcAddress(LibHandle, ProcName[RegAction]);
 	if @RegProc = Nil then
 	  raise Exception.CreateFmt('Error', [ProcName[RegAction],
 		FileName]);
 	if RegProc <> 0 then
 	  raise Exception.CreateFmt('Error', [ProcName[RegAction], FileName]);
   finally
 	FreeLibrary(LibHandle);
   end;
 end;
__________________
Saludos,
Peter Investment
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 01:52.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi