PChar Structure in PureBasic

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag 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)

-.-"
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag 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
Benutzeravatar
Green Snake
Beiträge: 1394
Registriert: 22.02.2005 19:08

Beitrag von Green Snake »

Warum muss ich immer den komplizierteren Weg einschlagen? :mrgreen:
-.-"
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
legion
Beiträge: 467
Registriert: 08.10.2006 18:04
Computerausstattung: Intel Core i5-6500 @ 4x 3.6GHz mit Windows 10 Pro, Intel Core-i7 mit Ubuntu 18.04 bionic, x86_64 Linux 4.18.0-16-generic, Microsoft Surface Pro - Windows 10 Pro
Wohnort: Wien
Kontaktdaten:

Beitrag 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 ?
Antworten