Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   ignorar la carga de una libreria en windows 98 (https://www.clubdelphi.com/foros/showthread.php?t=56313)

afxe 14-05-2008 11:30:07

ignorar la carga de una libreria en windows 98
 
Hola. Quizás no haya insistido suficiente en la localización de una respuesta para lo siguiente, a ver si me pueden ayudar: Tengo declarada una llamada a una función externa de la liberia netapi32.dll.
Código Delphi [-]

function NetShareAdd(ServerName: PWideChar; Level: Cardinal; buf: PByte; parm_err: PDWORD): Cardinal; stdcall; external 'netapi32.dll';

El programa funciona correctamente, pero cuando se corre en un ordenador con windows 98 falla, pues esa librería no existe. ¿Hay alguna manera de que ignore la declaración de la función en tiempo de ejecución?

Gracias por su atención.

cHackAll 14-05-2008 15:47:58

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
 hModule: Cardinal;
 NetShareAdd: function(ServerName: PWideChar; Level: Cardinal; buf: PByte; parm_err: PDWORD): Cardinal; stdcall;
begin
 hModule := LoadLibrary('netapi32.dll');
 if LongBool(hModule) then
  begin
   @NetShareAdd := GetProcAddress(hModule, 'NetShareAdd');
   NetShareAdd(nil, ...
  end;
end;

afxe 15-05-2008 08:29:29

jo! y yo buscando api's extraterrestres...
 
Gracias, me había ofuscado en buscar alguna directiva de compilación, o alguna función de chequeo de versión de S.O. en la cláusula INITIALIZATE y había dejado de lado lo más obvio... Menos mal que todavía hay algunos conservan la cabeza sobre el cuello.

Saludos.


La franja horaria es GMT +2. Ahora son las 07:19:01.

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