Clarion - Como Definir un Procedimiento

 
Vista:

Como Definir un Procedimiento

Publicado por Fernando (18 intervenciones) el 02/04/2009 23:03:47
Hola a todos, encontre en un sitio un código para leer el serial del disco, pero no se como definir el procedimiento, sigo los pasos pero me tira error. Si alguien me puede dar una mano, desde ya mil gracias.

Este es el código:

Primero tienes que declarar esta variables en Global Properties, en Global
Data embed:

DireccionProcedimiento LONG,AUTO,NAME('ObtenerSerieDD')

y en InsideGlobalMap

MODULE('SerieDiscoDuro')
ObtenerSerieDD(LONG),C,RAW,PROC,DLL(1),NAME('ObtenerSerieDD')
FreeLibrary(LONG),BOOL,RAW,PASCAL,NAME('FreeLibrary')
GetProcAddr(LONG,LONG),LONG,RAW,PASCAL,NAME('GetProcAddress')
LoadLibrary(*CSTRING),LONG,RAW,PASCAL,NAME('LoadLibraryA')
END

Luego generas un nuevo un procedimiento Source que tenga en Local data lo
siguiente:
(Yo lo llamo ObtenerSerieDiscoDuro)

Serie PSTRING(256),AUTO
DLLNombre CSTRING('HddSerial.dll')
DLLProcedimientoNombre CSTRING('GetHDDSerial')
Apuntador LONG,AUTO

Y en Processed Code:

Apuntador=LoadLibrary(DllNombre)
DireccionProcedimiento=GetProcAddr(Apuntador,ADDRESS(DLLProcedimientoNombre))
ObtenerSerieDD(ADDRESS(Serie))
FreeLibrary(Apuntador)
RETURN(Serie)

Y despues en donde quieras que se obtenga el disco duro, asocias este source
en los procedimientos y lo mandas llamarde la siguiente manera:

NumeroSerie=ObtenerSerieDiscoDuro()

No he generado el template, ya que lo hagas template, me lo mandas, jeje...

Nota: Debes tener el archivo DLL, en el mismo directorio donde funcione la
aplicacion....
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder