Salut,
J'ai une structure C commençant par un underscore, et avec laquelle je veux faire un lien en fortran2003. Le problème est que fortran n'autorise pas ce type de nom :
Je sêche ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 type, bind(C) :: _struct .... end type _struct
------- Je corrige -------------
Apparemment, le nom de la structure importe peu.
Par contre, peut-on, à partir de fortran, accéder au contenu de la structure C ?
Exemple, peut-on accéder à vbox ainsi :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 struct _GtkDialog { GtkWidget *vbox; GtkWidget *action_area; }; _GtkDialog *d GtkWidget *vb ---------- type,bind(c) :: dialog type(c_ptr) :: vbox type(c_ptr) :: action_area end type dialog type(dialog), pointer :: pd=>null() type(dialog), target :: td call c_f_pointer(d,pd) ; td = pd vb = c_loc(td%vbox)
... et de manière générale, si on admet que les noms des champs n'ont pas d'importance, comment deux structures peuvent-elles être interopérables ?
---------- dernière correction ---------------
les réponses sont là :
http://publib.boulder.ibm.com/infoce...erop-types.htm
Partager