![]() |
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:
Im Projekt Project1.exe ist eine Execption der Klasse EAccessViolation aufgetreten.intSteamEngine := SteamStartup(NDU_STEAM_USING_LOGGING, @Error); if intSteamEngine <> 1 then begin SteamShutdownEngine(@Error); ShowMessage('Error!'); end; Meldung: 'Zugriffsverletzung bei Adresse 00000000. Lesen von Adresse 00000000'. Prozess wurde angehlaten. Mit Einzelne Anweisung oder Start fortsetzten. :wall: Könnt ihr mir Helfen ? |
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? |
Re: Header zu Unit Problem !
Der Komplete aufruf sieht so aus.
Delphi-Quellcode:
Im Error steht zwar der Fehler MSG unter Error.szDesc aber am ende kommt der Fehler.
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; SteamStartUP
Code:
STEAM_API int STEAM_CALL SteamStartup( unsigned int uUsingMask, TSteamError *pError );
|
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? |
Re: Header zu Unit Problem !
Nur so aus Neugier... was gibt das denn wenns fertig ist?
|
Re: Header zu Unit Problem !
|
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. |
Re: Header zu Unit Problem !
Zitat:
|
Re: Header zu Unit Problem !
Zitat:
Delphi-Quellcode:
oder ?#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 |
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. |
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