Seite 2 von 2

Verfasst: 08.10.2006 20:26
von Green Snake
Hab mal diesen Code geschrieben...So richtig?

[Edit]
Hab ich PChar richtig interpretiert?
[/Edit]

Code: Alles auswählen


Structure DiskInfo
  FirmwareRev.l
  SerialNumber.l
  ModalNumber.l
  ECCByte.l
  Heads.l
  Sectors.l
  LBASector.l
  Bytes_Sector.l
EndStructure

If OpenLibrary(0,"getide.dll")
  Prototype.l pt_Info(Drive.b,*Disk.DiskInfo) 
  Global Info.pt_Info = GetFunction(0,"info")
EndIf

Define Disk.DiskInfo

Info(0,@Disk)
Debug PeekS(Disk\FirmwareRev)
Debug PeekS(Disk\SerialNumber)
Debug PeekS(Disk\ModalNumber)
Debug PeekS(Disk\ECCByte)
Debug PeekS(Disk\Heads)
Debug PeekS(Disk\Sectors)
Debug PeekS(Disk\LBASector)
Debug PeekS(Disk\Bytes_Sector)


Verfasst: 08.10.2006 20:31
von edel
So gehts bei mir :

Code: Alles auswählen

Structure DiskInfo
  FirmwareRev.s
  SerialNumber.s
  ModalNumber.s
  ECCByte.s
  Heads.s
  Sectors.s
  LBASector.s
  Bytes_Sector.s
EndStructure 

Prototype info(drive.b,*info)
OpenLibrary(0,"getide.dll")

Info.info = GetFunction(0,"info")

di.DiskInfo
info(0,di)

Debug di\FirmwareRev.s      
Debug di\SerialNumber.s
Debug di\ModalNumber.s
Debug di\ECCByte.s
Debug di\Heads.s
Debug di\Sectors.s
Debug di\LBASector.s
Debug di\Bytes_Sector.s
debug hat geschrieben: UZ100-03
S0BKJ1GYC01637
SAMSUNG SP1634N
4
16
63
268435455
554

Verfasst: 08.10.2006 20:34
von Green Snake
Warum muss ich immer den komplizierteren Weg einschlagen? :mrgreen:

Verfasst: 08.10.2006 20:38
von Kaeru Gaman
öh...
importiert er denn bei dir die string korrekt?
reserviert er speicher?
wenn ich nur longs reserviere, kann er zwar die pointer reinpacken,
aber verwaltet er auch die strings, die dazugehören?

Verfasst: 08.10.2006 20:38
von legion
Mit dem direkten Aufruf der Dll funktioniert es !
Danke ! ! ! ! ! !

Warum es mit der importierten Lib nicht funktioniert kann ich auch schon sagen. Das Schlüsselwort "Info_" ist von einer anderen Lib bereits belegt.
Das bedeutet, dass eine andere Lib dabei aufgerufen wird und die hat naturlich andere Parameter !

Fragt sich nur, wie ändert man den Aufruf in einer Dll ?