WritePrivateProfileString & GetPrivateProfileString.. -

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

mitschi2807

Betreff: WritePrivateProfileString & GetPrivateProfileString.. -

BeitragSo, Jun 01, 2008 14:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Weiß jemand wie ich in Blitz die Kernel32 Dll-Funktionen "WritePrivateProfileStringA" & "GetPrivateProfileStringA" verwenden kann?

ich verwende sie mit LibertyBasic (Falls das jemand kennt) aber ich weiß nicht wie ich das ganze in Blitz mache da ich bisher keine DLL´s in Blitz verwendet habe...

Hier der Liberty Basic code um die dll funktionen aufzurufen:
Code: [AUSKLAPPEN]

Function WritePrivateProfileString(lpAppName$, lpKeyName$, lpString$, lpFileName$)
    CallDLL #kernel32, "WritePrivateProfileStringA", lpAppName$ As ptr, lpKeyName$ As ptr,_
        lpString$ As ptr,lpFileName$ As ptr,result As boolean     
End Function

Function GetPrivateProfileString$(lpAppName$,lpKeyName$,lpDefault$,lpFileName$)
    nSize=100:lpReturnedString$=Space$(nSize)+Chr$(0)
    CallDLL #kernel32, "GetPrivateProfileStringA",lpAppName$ As ptr, lpKeyName$ As ptr,_
        lpDefault$ As ptr,lpReturnedString$ As ptr, nSize As long,_
        lpFileName$ As ptr,result As ulong 
    GetPrivateProfileString$=Left$(lpReturnedString$,result)     
 End Function
 

ChristianK

BeitragSo, Jun 01, 2008 15:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hier findest du ein sehr ausführliches Tutorial zum Verwenden von WinAPI-Funktionen in BlitzBasic -> https://www.blitzforum.de/foru...ght=winapi
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

mitschi2807

BeitragSo, Jun 01, 2008 16:08
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke...

Nur wie mach ich das bei "GetPrivateProfileStringA"... Da wird ein string und ein integer zurückgegeben... muss ich da eine Bank verwenden? - wenn ja wie mach ich das? Sad
 

ChristianK

BeitragSo, Jun 01, 2008 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Erst erstellst du eine Bank mit einer bestimmten Größe ( besser zu viel als zu wenig ):

Code: [AUSKLAPPEN]
Local bank = CreateBank( 1024 )

Dann rufst du die Funktion mit der Bank als Parameter auf. In deinem Fall bei lpReturnedString.
Anschließend musst du noch einen String aus den Bank-Daten erstellen.

Code: [AUSKLAPPEN]
Function StringFromBank$( bank, size )
   Local s$
   For I=0 To size-1
      Local b = PeekByte( bank, I )
      If b = 0 Exit
      s = s + Chr( b )
   Next
   Return s
End Function

Beachte aber auch, dass man WritePrivateProfileString und GetPrivateProfileString nicht mehr verwenden sollte, weil sie nur für Kompatibilität mit 16-Bit Windows dienen. Benutze besser die Registry oder schreibe dir einen eigenen INI-Parser.
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group