TailBite et interface

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
cha0s
Messages : 681
Inscription : sam. 05/mars/2005 16:09

TailBite et interface

Message par cha0s »

J'ai un petit problem j'essaye de faire une lib, une sorte de file pour etre exact et j'utilise les interfaces mais impossible de compiler avec tailbite.
Si quelqu'un pouvait m'aiguiller sa serait sympa.

Code : Tout sélectionner

EnableExplicit 



Structure Class_File
  MTable.l
  *First
EndStructure

Structure Class_Cellule
  MTable.l
  *Element
  *Next
  *Previous
EndStructure


DeclareDLL AddFileElement(*this.Class_File, *element)
DeclareDLL GetFirstElement(*this.Class_File)
DeclareDLL FreeFile(*this.Class_File)
DeclareDLL SetElement(*this.Class_Cellule, *element)
DeclareDLL GetElement(*this.Class_Cellule)
DeclareDLL SetNextElement(*this.Class_Cellule, *element)
DeclareDLL GetNextElement(*this.Class_Cellule)
DeclareDLL SetPreviousElement(*this.Class_Cellule, *element)
DeclareDLL GetPreviousElement(*this.Class_Cellule)
DeclareDLL FreeCellule(*this.Class_Cellule)
DeclareDLL NewCellule(*Element)
DeclareDLL NewFile(*FirstElement = #Null)

Interface File
  AddFileElement(*element)
  GetFirstElement()
  FreeFile()
EndInterface


Interface Cellule
  SetElement(*element)
  GetElement()
  SetNextElement(*element)
  GetNextElement()
  SetPreviousElement(*element)
  GetPreviousElement()
  FreeCellule()
EndInterface


ProcedureDLL NewCellule(*Element)
  Protected *this.Class_Cellule = AllocateMemory(SizeOf(Cellule))
  *this\MTable = ?Cellule_MTable
  *this\Element = *Element
  *this\Next = #Null
  *this\Previous = #Null
  ProcedureReturn *this
EndProcedure


ProcedureDLL SetElement(*this.Class_Cellule, *Element)
  *this\Element = *Element
EndProcedure

ProcedureDLL SetNextElement(*this.Class_Cellule, *Element)
  *this\Next = *Element
EndProcedure

ProcedureDLL GetElement(*this.Class_Cellule)
  ProcedureReturn *this\Element
EndProcedure

ProcedureDLL GetNextElement(*this.Class_Cellule)
  ProcedureReturn *this\Next
EndProcedure

ProcedureDLL FreeCellule(*this.Class_Cellule)
  FreeMemory(*this)
EndProcedure

ProcedureDLL SetPreviousElement(*this.Class_Cellule, *element)
  *this\Previous = *element
EndProcedure

ProcedureDLL GetPreviousElement(*this.Class_Cellule)
  ProcedureReturn *this\Previous
EndProcedure




ProcedureDLL NewFile(*FirstElement = #Null)
  Protected *this.Class_File = AllocateMemory(SizeOf(Class_File))
  *this\MTable = ?File_MTable
  If *FirstElement
    *this\First = NewCellule(*FirstElement)
  Else
    *this\First = *FirstElement
  EndIf
  ProcedureReturn *this
EndProcedure

ProcedureDLL AddFileElement(*this.Class_File, *element)
  Protected *first.Cellule
  *first = NewCellule(*element)
  If *this\First
   *first\SetNextElement(*this\First)
   SetPreviousElement(*this\First, *first)
  EndIf 
  *this\First = *first
EndProcedure

ProcedureDLL GetFirstElement(*this.Class_File)
  ProcedureReturn = *this\First
EndProcedure

ProcedureDLL FreeFile(*this.Class_File)
  FreeMemory(*this)
EndProcedure


DataSection 
  File_MTable:
  Data.l @AddFileElement()
  Data.l @GetFirstElement()
  Data.l @FreeFile()
EndDataSection
  
  
DataSection 
  Cellule_MTable:
  Data.l @SetElement()
  Data.l @GetElement()
  Data.l @SetNextElement()
  Data.l @GetNextElement()
  Data.l @SetPreviousElement()
  Data.l @GetPreviousElement()
  Data.l @FreeCellule()
EndDataSection


DisableExplicit
Thierryfr
Messages : 102
Inscription : mer. 04/avr./2007 16:28

Message par Thierryfr »

dis moi comment tu crée une lib ? avec tailbite svp?

parceque j'ai beau lire les exemples d'ici pour les libs mais je pige rien sur la creation d'une lib
merci
Avatar de l’utilisateur
Flype
Messages : 2431
Inscription : jeu. 29/janv./2004 0:26
Localisation : Nantes

Message par Flype »

utilises tu la derniere version de Tailbite dispo sur le site de gnozal ?

http://freenet-homepage.de/gnozal/
http://freenet-homepage.de/gnozal/TailBite.zip
Répondre