Thema: Delphi STEAM DLL

Einzelnen Beitrag anzeigen

Benutzerbild von geskill
geskill

Registriert seit: 17. Feb 2007
Ort: NRW
420 Beiträge
 
Delphi 2010 Professional
 
#1

STEAM DLL

  Alt 14. Mär 2008, 22:23
Hi,
momentan sind "Steve1405" und ich dabei die Steam.dll (www.steampowered.com) zu übersetzen. Dabei benutzen wird die schon zum Teil vorgefertige SteamAPI von "nitschchedu". Jedoch happert es noch an einigen Stellen.

1. Wir wollen die Funktion "SteamGetUser" aufrufen, wir bekommen zwar einen Namen zurück, danach wird man aber in dem Testprogramm ausgeloggt. Deshalb gehen wird davon aus das es ein Fehler bei dem Aufruf ist, oder dass die Parameterliste nicht mehr stimmt.

Delphi-Quellcode:
  function SteamGetUser(szUser: PChar; uBufSize: Cardinal;
    puUserChars: PCardinal; bIsSecureComputer: Integer;
    pError: PnduSteamError): Integer; cdecl; external 'steam.dll';
Den Code zur Ausführung der Funktion haben wir so gestalltet:
Der Variablenname puUserChars sollte unser Meinung nach die Anzahl der Buchstaben zurückgeben, jedoch wird 48401 zurückgeliefert und der result-Wert ist nur Datenschrott.
Delphi-Quellcode:
FUNCTION TnduSteam.GetUser:PChar;
VAR strProg: TnduSteamProgress; phGetUser: Cardinal; puUserChars:PCardinal; UserName:PChar;
BEGIN
  phGetUser := SteamGetUser(UserName,16{uBufSize=laenge des Namens +1},puUserChars,1,@mError);

  //ShowMessage(IntToStr(puUserChars^));

  WHILE SteamProcessCall(phGetUser, @strProg, @mError) = 0
    DO BEGIN
    END;

  result := UserName;
END;
2. Ich will eine Funktion "SteamGetCurrentEmailAddress" aufrufen, leider Fehlt mir für die Funktion die Parameterliste, mit dem Tool "APIMonitor" bekomme ich zwar ziemlich genau den result-Wert, jedoch fehlen mir die weiteren Parameter:
Delphi-Quellcode:
  FUNCTION SteamGetCurrentEmailAddress(szEmail: PChar; {weitere Parameter}
    pError: PnduSteamError): Integer; cdecl; external 'steam.dll';
Vielleicht hat einer in dieser Richtung schon Erfahrungen gesammelt, oder ist gut im Raten, dass weitere Parameter fehlen schließe ich aus der Zugriffsverletzung.

Damit Ihr nicht bei 0 anfangen müsst, ist hier unser Testprogramm. Für die Ausführung des Programms wird selbstverständlich die Steam.dll benötigt, die im Steam.exe Ordner vorhanden ist, ich habe die nicht hinzugefügt weil ich nicht weiß ob es rechtens ist!
Miniaturansicht angehängter Grafiken
getemail_164.jpg  
Angehängte Dateien
Dateityp: zip steam__source__883.zip (700,0 KB, 19x aufgerufen)
Sebastian
  Mit Zitat antworten Zitat