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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
type, bind(C) :: _struct
....
end type _struct
Je sêche ...
------- 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