QleGetExp

Prototypes

void QleGetExp(int *act_mark, int *ident_type, int *number, char *NomSymbole, void *Symbole, int *export_type, Qus_EC_t *LE_RC);

Description

Recherche le symbole de nom NomSymbole dans la bibliothèque identifiée par act_mark qui a été chargée dynamiquement.

Le résultat est le pointeur Symbole vers ce symbole. Le type du pointeur est donné par export_type.

Exemple

#include <stdio.h>
#include <stdlib.h>
#include <miptrnam.h>
#include <mih/rinzstat.h>
#include <mih/matactex.h>
#include <qleawi.h>
#include <pointer.h>

#define CO_Srvpgm 0x0203
#define CO_Procedure 0x1

_SYSPTR Programme;
int act_mark;
Qle_ABP_Info_t le_act_info;
int le_act_info_size;
int LE_RC;
int number;
int ident_type;
int export_type;
void (*Procedure)(void);
RINZ_TEMPL_T Informations;

...
Programme=rslvsp(CO_Srvpgm, (_OBJ_NAME)"essai", (_LIB_NAME)"tmp", _AUTH_ALL);
if (!Programme) act_mark=0;
le_act_info_size=sizeof(le_act_info);
memset(le_act_info_size, 0, le_act_info_size);
LE_RC=0;
QleActBndPgm(&Programme, &act_mark, &le_act_info, &le_act_info_size, (Qus_EC_t *)&LE_RC);
...
Procedure=NULL;
ident_type=0;
number=0;
export_type=0;
LE_RC=0;
QleGetExp(&act_mark, &ident_type, &number, "MaProcedure", &Procedure, &export_type, (Qus_EC_t *)&LE_RC);
if (export_type!=CO_Procedure) ...
(*Procedure)();
...
Informations.rinz_pgm=Programme;
Informations.rinz_agpmk=le_act_info.Act_Grp_Mark;
_RINZSTAT(&Informations);
...

Avertissement

La valeur de Symbole est NULL si le symbole n'a pu être trouvé.

Voir aussi

rslvsp pour invoquer un service. QleActBndPgm pour activer le service. _RINZSTAT pour désactiver le service.