AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

STEAM DLL

Ein Thema von geskill · begonnen am 14. Mär 2008 · letzter Beitrag vom 15. Mär 2008
Antwort Antwort
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, 21: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
Benutzerbild von geskill
geskill

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

Re: STEAM DLL

  Alt 15. Mär 2008, 08:18
Ich habe etwas herumprobiert wenn man den Aufruf der Funktion ändert, ist es erstmal egal wie viele Buchstaben der Name besitzt.

Delphi-Quellcode:
  FUNCTION SteamGetUser(szUser: PChar; puUserChars: PCardinal;
    uBufSize: Cardinal; bIsSecureComputer: Integer;
    pError: PnduSteamError): Integer; cdecl; external 'steam.dll';
Delphi-Quellcode:
FUNCTION TnduSteam.GetUser:PChar;
VAR strProg: TnduSteamProgress; phGetUser: Cardinal; puUserChars:PCardinal; UserName:PChar;
BEGIN
  phGetUser := SteamGetUser(UserName,puUserChars,1,1,@mError);

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

  result := UserName;
END;
Jedoch Loggt man sich nach dem Aufruf immer noch aus :gruebel:
Und zur EMailAdresse, es sind 4 Parameter beim Aufruf, jedoch weiß ich noch nicht genau welche dort hinein müssen.

Delphi-Quellcode:
  FUNCTION SteamGetCurrentEmailAddress(szEmail: PChar; uBufSize: Cardinal;
    puEmailChars: PCardinal; //bIsSecureComputer: Integer;
    pError: PnduSteamError): Integer; cdecl; external 'steam.dll';
Wenn jemand noch eine Idee hat gerne her damit, schaden kann es ja nicht..
Sebastian
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz