Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
982 connectés 

  FORUM HardWare.fr
  Programmation
  Ada

  Interface ADA avec C

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Interface ADA avec C

n°1929014
neoada
Posté le 05-10-2009 à 15:15:07  profilanswer
 

Bonjour,
 
Je cherche à appeler du code ada à partir d'un code c.
J'ai déjà une solution avec le pragma export et ça marche bien.
Mais mon but est de comprendre comment fonctionne les callback en ada.
Cette façon de faire permet au code c d'appeler un sous-programme ada en passant par un pointeur de fonction.
J'ai alors testé la chose suivante qui ne fonctionne pas :
 
Code C:
======
 
typedef void (*void_function_type)(void);
static void_function_type callback;
void give_c_ptr(void_function_type f)
{ callback = f; }
 
int main (void)
{
   adainit();
    (*callback)(); -- quand je lance l'exe, ca se bloque ici
   adafinal();
   return 0;
 
}
 
Code Ada:
=======
package LIB_ADA is
    type C_Function_Ptr is access procedure;
    pragma Convention (C, C_Function_Ptr);
 
    procedure function_ada;
    pragma convention(C, function_ada);
end LIB_ADA;
 
package body LIB_ADA is
   procedure function_ada is
   begin
      ada.text_io.put("ADA is called" );
   end function_ada;
end LIB_ADA;
 
 
Y'a t-il des connaisseurs en ada pouvant m'aider à comprendre pourquoi mon code ne fonctionne pas car le code ada n'est jamais appelé ?
 
Merci d'avance pour aide.

mood
Publicité
Posté le 05-10-2009 à 15:15:07  profilanswer
 

n°1930724
neoada
Posté le 09-10-2009 à 16:39:42  profilanswer
 

J'ai résolu le problème.
 
C'est assez puissant car le code C appelle une fonction Ada sans savoir que c'est de l'Ada (ni du Java ni n'importe quel autre techno...).
 
neoada


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Ada

  Interface ADA avec C

 

Sujets relatifs
Entiers de taille précise en C++C: addition de grands nombres
[RESOLU]Debutant en C++, petite question a propos d'un programme[matlab/C++] ASA - adaptatibe stimulated annealing
[C] Vider stdin[C++ / DLL]
[C++] Extraction des bits d'un nombre[Réglé][C++]Vérification d'algorithme + conseils
[Divers][Lecture]Utilisation de la bibliothèque portmidi : Pm_Read()Interface C/Ada + SDL
Plus de sujets relatifs à : Interface ADA avec C


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR