Section courante

A propos

Section administrative du site

DosQueryProcAddr

DOS : Requête d'adressage de procédure
DOSCALLS.DLL os2.h

Syntaxe

APIRET DosQueryProcAddr( HMODULE hMod, ULONG ulOrdinal, PSZ pszProcName, PFN* pProcAddr );

Paramètres

Nom Description
hMod Ce paramètre permet d'indiquer le Handle du module de la requête (pour le DosLoadModule).
ulOrdinal Ce paramètre permet d'indiquer le nombre ordinal pour le processus recherché. Si la valeur est 0, pszProcName est utilisé.
pszProcName Ce paramètre permet d'indiquer un pointeur vers une chaîne de caractères contenant le nom du processus recherché. Il ne distinct pas les majuscules ou minuscules.
pProcAddr Ce paramètre permet d'indiquer l'adresse du pointeur de fonction, lequel contient l'adresse de la procédure.

Retour

Valeur Constante Description
0 NO_ERROR Cette valeur permet d'indiquer que l'opération s'est correctement effectué
6 ERROR_INVALID_HANDLE Cette valeur permet d'indiquer que la valeur du hmuxSemaphore ne point pas sur un sémaphore valide.
123 ERROR_INVALID_NAME Cette valeur permet d'indiquer que le nom pszSemaphoreName est rejeté par un fichier système.
65079 ERROR_ENTRY_IS_CALLGATE Cette valeur permet d'indiquer qu'une erreur d'entrée dans l'appel des point d'entrées du module s'est produit.

Description

Cette fonction permet de trouver l'adresse d'un processus d'un module de lien dynamique.

Remarques

Exemple

Voici un simple exemple montrant comme appeler cette API avec WatCom C++ for OS/2 :

  1. #define INCL_DOSERRORS
  2. #define INCL_DOSMODULEMGR
  3. #include "os2.h"
  4. #include "stdio.h"
  5.  
  6. void main(void) {
  7.     void (* dll_fonction)(int, char*);
  8.     HMODULE hmod;
  9.     switch(DosQueryProcAddr(hmod, 0, "MA_FONCTION", (PFN *) dll_fonction)) {
  10.         case NO_ERROR: printf("Tout va bien !");break;
  11.         case ERROR_INVALID_HANDLE: printf("Erreur : La valeur du hmuxSemaphore ne point pas sur un sémaphore valide.");break;
  12.         case ERROR_INVALID_NAME: printf("Erreur : Le nom pszSemaphoreName est rejeté par un fichier système.");break;
  13.         case ERROR_ENTRY_IS_CALLGATE: printf("Erreur : Une erreur d'entrée dans l'appel des point d'entrées du module s'est produit");break;
  14.     }
  15.  
  16.     dll_fonction(1234,"Ma fonction!\n");
  17. }

Voir également

Langage de programmation - C pour OS/2 - DosLoadModule
Langage de programmation - C pour OS/2 - DosFreeModule
Langage de programmation - C pour OS/2 - DosQueryModuleName
Langage de programmation - C pour OS/2 - DosQueryProcType
Système d'exploitation - OS/2 - Introduction

Dernière mise à jour : Lundi, le 19 juillet 2010