Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Header zu Unit Problem ! (https://www.delphipraxis.net/79519-header-zu-unit-problem.html)

nitschchedu 24. Okt 2006 07:33


Header zu Unit Problem !
 
Ich habe eine Header Übersetzt nun wenn ich sie anwenden will Bekomme ich bei den aufruf
einen Fehler. :(

Die Übersetzung:

Code:

typedef enum
{
   eSteamErrorNone                                       = 0,
   eSteamErrorUnknown                                    = 1,
   eSteamErrorLibraryNotInitialized                        = 2,
   eSteamErrorLibraryAlreadyInitialized                     = 3,
   eSteamErrorConfig                                    = 4,
   eSteamErrorContentServerConnect                           = 5,
   eSteamErrorBadHandle                                 = 6,
   eSteamErrorHandlesExhausted                              = 7,
   eSteamErrorBadArg                                    = 8,
   eSteamErrorNotFound                                    = 9,
   eSteamErrorRead                                       = 10,
   eSteamErrorEOF                                       = 11,
   eSteamErrorSeek                                       = 12,
   eSteamErrorCannotWriteNonUserConfigFile                     = 13,
   eSteamErrorCacheOpen                                 = 14,
   eSteamErrorCacheRead                                 = 15,
   eSteamErrorCacheCorrupted                              = 16,
   eSteamErrorCacheWrite                                 = 17,
   eSteamErrorCacheSession                                 = 18,
   eSteamErrorCacheInternal                              = 19,
   eSteamErrorCacheBadApp                                 = 20,
   eSteamErrorCacheVersion                                 = 21,
   eSteamErrorCacheBadFingerPrint                           = 22,

   eSteamErrorNotFinishedProcessing                        = 23,
   eSteamErrorNothingToDo                                 = 24,
   eSteamErrorCorruptEncryptedUserIDTicket                     = 25,
   eSteamErrorSocketLibraryNotInitialized                     = 26,
   eSteamErrorFailedToConnectToUserIDTicketValidationServer      = 27,
   eSteamErrorBadProtocolVersion                           = 28,
   eSteamErrorReplayedUserIDTicketFromClient                  = 29,
   eSteamErrorReceiveResultBufferTooSmall                     = 30,
   eSteamErrorSendFailed                                 = 31,
   eSteamErrorReceiveFailed                              = 32,
   eSteamErrorReplayedReplyFromUserIDTicketValidationServer      = 33,
   eSteamErrorBadSignatureFromUserIDTicketValidationServer         = 34,
   eSteamErrorValidationStalledSoAborted                     = 35,
   eSteamErrorInvalidUserIDTicket                           = 36,
   eSteamErrorClientLoginRateTooHigh                        = 37,
   eSteamErrorClientWasNeverValidated                        = 38,
   eSteamErrorInternalSendBufferTooSmall                     = 39,
   eSteamErrorInternalReceiveBufferTooSmall                  = 40,
   eSteamErrorUserTicketExpired                           = 41,
   eSteamErrorCDKeyAlreadyInUseOnAnotherClient                  = 42,

   eSteamErrorNotLoggedIn                                 = 101,
   eSteamErrorAlreadyExists                              = 102,
   eSteamErrorAlreadySubscribed                           = 103,
   eSteamErrorNotSubscribed                              = 104,
   eSteamErrorAccessDenied                                 = 105,
   eSteamErrorFailedToCreateCacheFile                        = 106,
   eSteamErrorCallStalledSoAborted                           = 107,
   eSteamErrorEngineNotRunning                              = 108,
   eSteamErrorEngineConnectionLost                           = 109,
   eSteamErrorLoginFailed                                 = 110,
   eSteamErrorAccountPending                              = 111,
   eSteamErrorCacheWasMissingRetry                           = 112,
   eSteamErrorLocalTimeIncorrect                           = 113,

   eSteamErrorNetwork                                    = 200


} ESteamError;


typedef enum
{
   eNoDetailedErrorAvailable,
   eStandardCerrno,
   eWin32LastError,
   eWinSockLastError,
   eDetailedPlatformErrorCount
} EDetailedPlatformErrorType;


typedef struct
{
   ESteamError eSteamError;
   EDetailedPlatformErrorType eDetailedErrorType;
   int nDetailedErrorCode;
   char szDesc[STEAM_MAX_PATH];
} TSteamError;


STEAM_API int            STEAM_CALL   SteamStartEngine( TSteamError *pError );

Delphi-Quellcode:
const
    NDU_STEAM_USING_LOGGING                      = $00000002;

type
  TnduESteamError = (eSteamErrorNone                  = 0,
    eSteamErrorUnknown                                = 1,
     eSteamErrorLibraryNotInitialized   = 2,
     eSteamErrorLibraryAlreadyInitialized      = 3,
     eSteamErrorConfig                          = 4,
     eSteamErrorContentServerConnect                                    = 5,
     eSteamErrorBadHandle                                           = 6,
     eSteamErrorHandlesExhausted                                          = 7,
     eSteamErrorBadArg                                            = 8,
     eSteamErrorNotFound                                             = 9,
     eSteamErrorRead                                            = 10,
     eSteamErrorEOF                                            = 11,
     eSteamErrorSeek                                               = 12,
     eSteamErrorCannotWriteNonUserConfigFile                        = 13,
     eSteamErrorCacheOpen                                          = 14,
     eSteamErrorCacheRead                                          = 15,
     eSteamErrorCacheCorrupted                                       = 16,
     eSteamErrorCacheWrite                                          = 17,
     eSteamErrorCacheSession                                       = 18,
     eSteamErrorCacheInternal                                             = 19,
     eSteamErrorCacheBadApp                                             = 20,
     eSteamErrorCacheVersion                                             = 21,
     eSteamErrorCacheBadFingerPrint                                    = 22,

     eSteamErrorNotFinishedProcessing                                 = 23,
     eSteamErrorNothingToDo                                             = 24,
     eSteamErrorCorruptEncryptedUserIDTicket                        = 25,
     eSteamErrorSocketLibraryNotInitialized                        = 26,
     eSteamErrorFailedToConnectToUserIDTicketValidationServer      = 27,
     eSteamErrorBadProtocolVersion                                         = 28,
     eSteamErrorReplayedUserIDTicketFromClient                          = 29,
     eSteamErrorReceiveResultBufferTooSmall                             = 30,
     eSteamErrorSendFailed                                                = 31,
     eSteamErrorReceiveFailed                                           = 32,
     eSteamErrorReplayedReplyFromUserIDTicketValidationServer      = 33,
     eSteamErrorBadSignatureFromUserIDTicketValidationServer         = 34,
     eSteamErrorValidationStalledSoAborted                               = 35,
     eSteamErrorInvalidUserIDTicket                                       = 36,
     eSteamErrorClientLoginRateTooHigh                                    = 37,
     eSteamErrorClientWasNeverValidated                                  = 38,
     eSteamErrorInternalSendBufferTooSmall                               = 39,
     eSteamErrorInternalReceiveBufferTooSmall                          = 40,
     eSteamErrorUserTicketExpired                                         = 41,
     eSteamErrorCDKeyAlreadyInUseOnAnotherClient                        = 42,

     eSteamErrorNotLoggedIn                                        = 101,
     eSteamErrorAlreadyExists                                        = 102,
     eSteamErrorAlreadySubscribed                                         = 103,
     eSteamErrorNotSubscribed                                        = 104,
     eSteamErrorAccessDenied                                           = 105,
     eSteamErrorFailedToCreateCacheFile                                  = 106,
     eSteamErrorCallStalledSoAborted                                       = 107,
     eSteamErrorEngineNotRunning                                         = 108,
     eSteamErrorEngineConnectionLost                                       = 109,
     eSteamErrorLoginFailed                                        = 110,
     eSteamErrorAccountPending                                           = 111,
     eSteamErrorCacheWasMissingRetry                                       = 112,
     eSteamErrorLocalTimeIncorrect                                         = 113,

     eSteamErrorNetwork                                                = 200);


TnduEDetailedPlatformErrorType = (eNoDetailedErrorAvailable,
     eStandardCerrno,
     eWin32LastError,
     eWinSockLastError,
     eDetailedPlatformErrorCount);


  PnduSteamError = ^TnduSteamError;
  TnduSteamError = packed record
    eSteamError: TnduESteamError;
    eDetailedErrorType: TnduEDetailedPlatformErrorType;
    nDetailedErrorCode: Integer;
    szDesc: array [0..NDU_STEAM_MAX_PATH] of Char;
  end;


function SteamStartup(uUsingMask: Cardinal;
    pError: PnduSteamError): Integer; stdcall; external 'steam.dll';

Der Aufruf:

Delphi-Quellcode:

intSteamEngine := SteamStartup(NDU_STEAM_USING_LOGGING, @Error);

  if intSteamEngine <> 1 then
  begin
    SteamShutdownEngine(@Error);
    ShowMessage('Error!');
  end;
Im Projekt Project1.exe ist eine Execption der Klasse EAccessViolation aufgetreten.
Meldung: 'Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000'.
Prozess wurde angehlaten. Mit Einzelne Anweisung oder Start fortsetzten.

:wall:

Könnt ihr mir Helfen ?

mkinzler 24. Okt 2006 07:39

Re: Header zu Unit Problem !
 
Die AV deutet darauf hin, daß auf einen uniinitialisierten Speicherbereich zugegriffen wird, du z.B. eine nicht instantiierte Klasse verwenden willst.

Wie ist SteamStartup deklariert?
Was ist error?

nitschchedu 24. Okt 2006 07:53

Re: Header zu Unit Problem !
 
Der Komplete aufruf sieht so aus.

Delphi-Quellcode:
procedure TForm1.Button15Click(Sender: TObject);
var
  Error: TnduSteamError;
  intSteamEngine: Cardinal;
begin
  intSteamEngine := SteamStartup(NDU_STEAM_USING_LOGGING, @Error);

  if intSteamEngine <> 1 then
  begin
    SteamShutdownEngine(@Error);
    ShowMessage('Error!');
  end;
end;
Im Error steht zwar der Fehler MSG unter Error.szDesc aber am ende kommt der Fehler.

SteamStartUP

Code:
STEAM_API int            STEAM_CALL   SteamStartup( unsigned int uUsingMask, TSteamError *pError );

Christian Seehase 24. Okt 2006 17:23

Re: Header zu Unit Problem !
 
Moin nitschchedu,

woher weisst Du denn, dass STEAM_CALL der Aufrufkonvention stdcall entspricht?
Könnte es nicht auch cdecl sein?

Dani 24. Okt 2006 17:37

Re: Header zu Unit Problem !
 
Nur so aus Neugier... was gibt das denn wenns fertig ist?

Hawkeye219 24. Okt 2006 18:17

Re: Header zu Unit Problem !
 
Hallo nitschchedu,

vielleicht hast du auch nur einige alte Fehler wiederholt: klick

Gruß Hawkeye

nitschchedu 25. Okt 2006 09:56

Re: Header zu Unit Problem !
 
Wenn du das mit der Größe von den Arrays meinst da habe ich diesmal ser genau drauf aufgepasst. (Aus fehlern lernt man). :-D
Wenn das ganze fertig ist will ich mit meinen Steam mich einlogen und meine Games updaten lassen in der Console.

nitschchedu 25. Okt 2006 09:57

Re: Header zu Unit Problem !
 
Zitat:

Zitat von Christian Seehase
Moin nitschchedu,

woher weisst Du denn, dass STEAM_CALL der Aufrufkonvention stdcall entspricht?
Könnte es nicht auch cdecl sein?

Wie kann ich denn das Rausbekommen ?

nitschchedu 25. Okt 2006 09:59

Re: Header zu Unit Problem !
 
Zitat:

Zitat von nitschchedu
Zitat:

Zitat von Christian Seehase
Moin nitschchedu,

woher weisst Du denn, dass STEAM_CALL der Aufrufkonvention stdcall entspricht?
Könnte es nicht auch cdecl sein?

Wie kann ich denn das Rausbekommen ?

Ich glaube es liegt daran

Delphi-Quellcode:

#ifdef STEAM_EXPORTS
#define STEAM_API __declspec(dllexport)
#else
#define STEAM_API __declspec(dllimport)
#endif

#define STEAM_CALL __cdecl

#else

#define STEAM_API /* */
#define STEAM_CALL /* */

#endif
oder ?

Christian Seehase 25. Okt 2006 10:11

Re: Header zu Unit Problem !
 
Moin nitschchedu,

dann solltest Du es mal auf cdecl ändern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:57 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz