PDA

Ver la Versión Completa : Palabra reservada "index"


Lord Delfos
17-02-2008, 03:58:20
Buenas, gente.

A ver si alguno sabe qué es esto...

El otro día estaba leyendo en una página sobre Delphi y encontré la ayuda sobre la palabra reservada llamada "index".

Resultó tener varios usos que yo ya conocía y otros que no.

La página dice lo siguiente:


Version 3

Defines a unique index for routine when exporting.

Version 4

Defines the unique index of an external routine being imported.


"Version x" acá es porque había cuatro explicaciones diferentes (no por la versión de Delphi).

La página no da más explicaciones sobre esas dos cosas y Don Google tampoco, y la verdad es que me he quedado con la duda de qué son estas dos cosas y para qué se usan.

La página concretamente es http://www.delphibasics.co.uk/RTL.asp?Name=Index

Cómo sea. Gracias por el tiempo.

PD: No sé bien las reglas sobre los enlaces, porque la guía de estilo no dice nada pero he visto que en algunos casos los moderadores "se enojaron" con el que puso enlaces. Si éste es el caso, por favor háganmelo saber.

Lepe
17-02-2008, 14:24:52
Edito: elimino contenido. No había entendido biern tu pregunta.

ixMike
17-02-2008, 21:04:27
Lo que yo sé sobre index es que sirve para crear propiedades a las que se accede con un índice, como Strings en un TStrings. Y en la cita que has puesto, hace referencia a la exportación e importación de funciones en DLLs.

El caso 3:


library MiDLL;

uses Windows;

Procedure Saluda(h: THandle); stdcall;
begin
MessageBox(h, 'Hola', 'Saludo', MB_OK);
end;

exports
Saluda index 1;

end.


Y el caso 4:


procedure Saluda(h: Thandle); stdcall; external 'MiDLL.dll' index 1;


No sé si era esto lo que querías saber.


Salu2.

Lord Delfos
18-02-2008, 00:48:12
¡Gracias pro contestar gente!

ixMike, exacto. Eso quería saber...

... Ahora solamente me falta saber para qué puedo querer un índice en una función de biblioteca :rolleyes:

ixMike
18-02-2008, 19:46:40
... Ahora solamente me falta saber para qué puedo querer un índice en una función de biblioteca :rolleyes:

Simple. Puedes implementarlas por su nombre:


procedure Saluda; stdcall; external 'MiDLL.dll' name 'Saluda';


o pon un índice que se le haya dado:

procedure Saluda; stdcall; external 'MiDLL.dll' index 1;


Supongo que la utilidad deriva más en cuestión de gustos, o incluso una forma de orden: del index 1 al 99 son tal tipo de funciones, del 100 al 199 estas otras, del 200 al 299...


Salu2.