The matrix Chacun fait ce qu'il en veut. | Bonjour, je doit affecter un accès à une fonction importé de C à un accès importé de C avec Ada.
Dans le code ci dessous par exemple... la function Pt_Time ne s'affecte pas ....
J'ai un paquetage PortTime ::=
Code :
package Porttime is function Pt_Time return Long_Integer; pragma Import (C, Pt_Time, "Pt_Time" ); end Porttime;
|
Et un paquetage PortMidi ::=
Code :
with System; with Interfaces.C; with System.Address_To_Access_Conversions; package Portmidi is function Pm_OpenOutput( PortMidiStream :System.address; OutputDevice : Integer; outputDriverInfo : System.address; BufferSize : Long_Integer; Time_Proc : access function return Long_Integer; Time_Info : System.address; latency : Long_integer) return PmError; end Portmidi;
|
Et une affectation à faire, je pensais logiquement la suivante ::=
Code :
Error := Pm_OpenOutput( PortMidiStream => PortMidiStream_Ptr, OutputDevice => device, outputDriverInfo => OutputDriverInfo_ptr, BufferSize => 10, Time_Proc => Pt_Time'access, Time_Info => Time_Info_ptr, latency => 2);
|
Et un compilo qui me dit ::
manu@Chaos:~/Harmonie$ gnatmake main -larg -lportmidi -lporttime
gcc-4.3 -c -larg -lportmidi -lporttime main.adb
main.adb:188:41: subprogram "Pt_Time" has wrong convention
main.adb:188:41: does not match convention of access access to subprogram with profile "T12s"
main.adb:188:41: probable missing pragma Convention for access to subprogram with profile "T12s"
gnatmake: "main.adb" compilation error |
Merci !
Edit : pardon je m'étais trompé. Message édité par The matrix le 10-08-2009 à 21:50:23 ---------------
des gestes simples et ponctués, par quelques points presque importants, la précision coordonnée, d'une île déserte, des plans secrets, d'un architecte, à la retraite, passionné par son métier, refaire le monde, à son idée, tracer des routes, les emprunter
|