AGB  ·  Datenschutz  ·  Impressum  







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

Hilfe bei Steam API Wrappers

Ein Thema von Bubble · begonnen am 27. Jul 2015 · letzter Beitrag vom 27. Jul 2015
Antwort Antwort
Seite 1 von 2  1 2      
Bubble

Registriert seit: 27. Jul 2015
4 Beiträge
 
#1

Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 08:57
Hallo,

ich wollte die Steam API Wrappers mit Delphi XE6 austesten ( https://github.com/Relfos/steamworks_wrappers ), habe aber schon Probleme bei der Initialisierung. Ich glaube, einen entscheidenden Schritt vergessen zu haben. Es wäre toll, wenn mir jemand weiterhelfen könnte.

Delphi-Quellcode:
unit test;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;


Type
   MyFunction = Function(CustomUrl : PChar) : DWORD; Stdcall;
 Const
   APIload = 'steam_api.dll';
   PassString : String = 'http://forum.lazarus.freepascal.org';

var
  Form1: TForm1;

  Function SteamAPI_Init : Boolean; cdecl; External APIload; // Tried even with stdcall

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
  If SteamAPI_Init = True Then ShowMessage('ok');
end;

end.

Das Programmverzeichnis sieht so aus:
CSteamworks.dll
libCSteamworks.so
SteamAPI.pas
test.dfm
test.dpr
test.dproj
test.pas


Das Programm wird fehlerlos kompiliert, beim Start erscheint jedoch die Form nicht und das Programm kehrt zum Editor zurück.

Geändert von mkinzler (27. Jul 2015 um 09:42 Uhr) Grund: Delphi-Tag eingefügt
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 09:17
Projekt / Optionen / Formulare / bei Automatisch erzeugen sollte dein Formular Form1 drinstehen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Bubble

Registriert seit: 27. Jul 2015
4 Beiträge
 
#3

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 09:32
Leider nicht.

Delphi-Quellcode:
program test;

uses
  Vcl.Forms,
  test in 'test.pas{Form1},
  SteamAPI in 'SteamAPI.pas';

{$R *.res}

begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.
Sicherheitshalber habe ich es nochmal neu erstellt. Es startet (Form erscheint) bis ich diese Line einfüge:

Function SteamAPI_Init : Boolean; cdecl; External APIload;

Geändert von mkinzler (27. Jul 2015 um 09:42 Uhr)
  Mit Zitat antworten Zitat
zagota

Registriert seit: 3. Sep 2014
38 Beiträge
 
#4

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 09:59
[QUOTE=Bubble;1309893]Hallo,

Delphi-Quellcode:
unit test;

  Function SteamAPI_Init : Boolean; cdecl; External APIload; // Tried even with stdcall


end.
Muss bei der Definition nicht noch der Name der Funktion angegeben werden?

Function SteamAPI_Init : Boolean; cdecl; External APIload name 'SteamAPI_?????';

steam_api.dll wird auch gefunden?

cu
  Mit Zitat antworten Zitat
Bubble

Registriert seit: 27. Jul 2015
4 Beiträge
 
#5

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 10:21
[QUOTE=zagota;1309898]
Hallo,

Delphi-Quellcode:
unit test;

  Function SteamAPI_Init : Boolean; cdecl; External APIload; // Tried even with stdcall


end.
Muss bei der Definition nicht noch der Name der Funktion angegeben werden?

Function SteamAPI_Init : Boolean; cdecl; External APIload name 'SteamAPI_?????';

steam_api.dll wird auch gefunden?

cu
Okay, ich habe jetzt diese Line geändert:

Function SteamAPI_Init : Boolean; cdecl; External 'Steam_api.dll';

Also APIload mit 'Steam_api.dll' ersetzt.

Jetzt bekomme ich die Fehlermeldung, dass er die DLL nicht findet. Sie ist aber sowohl im System32 Verzeichnis von Windows, als auch in dem Programmverzeichnis.
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 10:27
als auch in dem Programmverzeichnis.
im debug Verzeichnis?
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 10:27
Das Programmverzeichnis sieht so aus:
CSteamworks.dll
libCSteamworks.so
SteamAPI.pas
test.dfm
test.dpr
test.dproj
test.pas
Also APIload mit 'Steam_api.dll' ersetzt.

Jetzt bekomme ich die Fehlermeldung, dass er die DLL nicht findet. Sie ist aber sowohl im System32 Verzeichnis von Windows, als auch in dem Programmverzeichnis.
Wie heißt denn die DLL "CSteamworks.dll" oder "Steam_api.dll"?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
zagota

Registriert seit: 3. Sep 2014
38 Beiträge
 
#8

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 10:32
[QUOTE=Bubble;1309905]
Hallo,

Delphi-Quellcode:
unit test;

  Function SteamAPI_Init : Boolean; cdecl; External APIload; // Tried even with stdcall


end.
Muss bei der Definition nicht noch der Name der Funktion angegeben werden?

Function SteamAPI_Init : Boolean; cdecl; External APIload name 'SteamAPI_?????';

steam_api.dll wird auch gefunden?

cu
Okay, ich habe jetzt diese Line geändert:

Function SteamAPI_Init : Boolean; cdecl; External 'Steam_api.dll';

Also APIload mit 'Steam_api.dll' ersetzt.

Jetzt bekomme ich die Fehlermeldung, dass er die DLL nicht findet. Sie ist aber sowohl im System32 Verzeichnis von Windows, als auch in dem Programmverzeichnis.
Gemeint hatte ich eigentlich

Function SteamAPI_Init : Boolean; cdecl; External 'Steam_api.dll' name 'Name der Funktion die aufgerufen werden soll';

In deinem ersten Post war die Steam_api.dll aber nicht aufgeführt.

cu
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 10:37
Gemeint hatte ich eigentlich

Function SteamAPI_Init : Boolean; cdecl; External 'Steam_api.dll' name 'Name der Funktion die aufgerufen werden soll';
Wenn der Funktionsname in der DLL genauso heißt wie vorne angegeben ("SteamAPI_Init"), kann man diesen hinten (...name "Name der Funktion") weglassen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)

Geändert von baumina (27. Jul 2015 um 10:40 Uhr)
  Mit Zitat antworten Zitat
zagota

Registriert seit: 3. Sep 2014
38 Beiträge
 
#10

AW: Hilfe bei Steam API Wrappers

  Alt 27. Jul 2015, 10:42
Gemeint hatte ich eigentlich

Function SteamAPI_Init : Boolean; cdecl; External 'Steam_api.dll' name 'Name der Funktion die aufgerufen werden soll';
Wenn der Funktionsname in der DLL genauso heißt wie vorne angegeben ("SteamAPI_Init"), kann man diesen hinten (...name "Name der Funktion") weglassen.
Ok, hab schon lange kein statischen Import mehr gemacht.
Würde eh über LoadLibrary() und GetProcAddress() gehen.

cu
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 17:09 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