2010-01-23 6 views
1

J'ai besoin d'appeler la fonction hllapi de pcshll32.dll en utilisant Delphi. Cela fonctionne avec les communications personnelles de ibm. Comment puis-je changer le code ci-dessous pour Delphi? Merci !!!Appelez dll - pcshll32.dll en utilisant delphi

Le point d'entrée EHLLAPI (HLLAPI) est toujours appelé avec les quatre paramètres suivants:

  1. EHLLAPI Numéro de fonction (entrée)
  2. Mémoire tampon de données (entrée/sortie)
  3. Tampon Longueur (entrée/sortie)
  4. Espace de présentation Position (entrée); Code de retour (sortie)

Le prototype pour IBM standard EHLLAPI est: [longue HLLAPI (LPWORD, LPSTR, LPWORD, LPWORD); Le prototype pour IBM Enhanced EHLLAPI est: [long hllapi (LPINT, LPSTR, LPINT, LPINT);

Chaque paramètre est transmis par référence et non par valeur. Ainsi, chaque paramètre de l'appel de la fonction doit être un pointeur vers la valeur, et non la valeur elle-même. Par exemple, ce qui suit est un exemple correct d'appeler la fonction EHLLAPI Query Session Statut:

#include "hapi_c.h" 
struct HLDQuerySessionStatus QueryData; 
int Func, Len, Rc; 
long Rc; 
memset(QueryData, 0, sizeof(QueryData)); // Init buffer 

QueryData.qsst_shortname = ©A©; // Session to query 
Func = HA_QUERY_SESSION_STATUS; // Function number 
Len = sizeof(QueryData); // Len of buffer 
Rc = 0; // Unused on input 
hllapi(&Func, (char *)&QueryData, &Len, &Rc); // Call EHLLAPI 
if (Rc != 0) { // Check return code 
// ...Error handling 
} 

Tous les paramètres de l'appel HLLAPI sont des pointeurs et le code de retour de la fonction EHLLAPI est retourné dans la valeur du 4ème paramètre, pas comme la valeur de la fonction.

Répondre