AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Array of Integer und crash

Ein Thema von EWeiss · begonnen am 19. Mär 2017 · letzter Beitrag vom 27. Sep 2018
Antwort Antwort
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#1

AW: Array of Integer und crash

  Alt 26. Sep 2018, 14:59
Ein kleines 20-50 Zeilenprogramm zum nachvollziehen und selber kompilieren?
Leider nicht.
Es geht um GDIPlus alleine die Header sind schon ein paar Hundert Zeilen.

gruss
Kein Problem, die sind ja in jeden neueren Delphi unter Winapi.GDIPAPI mit dabei.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Array of Integer und crash

  Alt 26. Sep 2018, 15:04
Ein kleines 20-50 Zeilenprogramm zum nachvollziehen und selber kompilieren?
Leider nicht.
Es geht um GDIPlus alleine die Header sind schon ein paar Hundert Zeilen.

gruss
Kein Problem, die sind ja in jeden neueren Delphi unter Winapi.GDIPAPI mit dabei.
Diese sind zu meiner Engine nicht kompatibel.
Mein Header lädt die GDIPlus dynamisch und alle Funktionen basieren auf WinAPI32 nicht auf Classen.

Hmm... ist wieder so ein Problem wo ich mit einem Beispiel leider nicht dienen kann auch wenn ich es wollte.
Danke.

gruss
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Array of Integer und crash

  Alt 26. Sep 2018, 15:24
Kein Problem, die sind ja in jeden neueren Delphi unter Winapi.GDIPAPI mit dabei.
Diese sind zu meiner Engine nicht kompatibel.
Mein Header lädt die GDIPlus dynamisch und alle Funktionen basieren auf WinAPI32 nicht auf Classen.

Hmm... ist wieder so ein Problem wo ich mit einem Beispiel leider nicht dienen kann auch wenn ich es wollte.
Danke.
Die Funktionen in Winapi.GDIPAPI sind flach und direkte WinAPI32. Nicht mit Winapi.GDIPOBJ verwechseln!

Versuche damit ein Beispielprogramm mit Initialisierung, Bild laden und das Abfragen der von dir gewünschten Funktion zu bauen.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Array of Integer und crash

  Alt 26. Sep 2018, 15:30
Zitat:
Diese sind zu meiner Engine nicht kompatibel.
Das Beispiel Projekt muss sich an den Richtlinien halten wie sie von meiner Library vorgegeben sind.
Ansonsten macht es keinen sinn.

Sorry nein kein Beispiel.

gruss
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.074 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Array of Integer und crash

  Alt 26. Sep 2018, 15:39
Ggf. sind aber deine Header nicht richtig übersetzt?
Das wäre doch genau der springende Punkt.
Wenn das Beispielprojekt mit den mitgelieferten Headern geht und mit deinen nicht, dann weißt du doch wo der Fehler ist.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Array of Integer und crash

  Alt 26. Sep 2018, 15:51
Zitat:
Ggf. sind aber deine Header nicht richtig übersetzt?
Denke mal nicht.
Der einzige unterschied ist ich verwende LONG_PTR anstelle von Pointer für die Images.

Meine..
Delphi-Quellcode:
  GdipImageGetFrameCount: function(Image: LONG_PTR; dimensionID: PGUID; var count: UINT): GPSTATUS; stdcall;
  GdipGetPropertyItem: function(Image: LONG_PTR; propId: PROPID; propSize: UINT; var buffer: PPROPERTYITEM): GPSTATUS; stdcall;
  GdipGetPropertyItemSize: function(Image: LONG_PTR; propId: PROPID; var size: UINT): GPSTATUS; stdcall;
  GdipGetPropertyCount: function(Image: LONG_PTR; var numOfProperty: UINT): GPSTATUS; stdcall;
  GdipGetPropertyIdList: function(Image: LONG_PTR; numOfProperty: UINT; var list: PPROPID): GPSTATUS; stdcall;
Winapi.GDIPAPI
Delphi-Quellcode:
  function GdipImageGetFrameCount(image: GPIMAGE; dimensionID: PGUID;
    var count: UINT): GPSTATUS; stdcall;
  {$EXTERNALSYM GdipImageGetFrameCount}
  
  function GdipGetPropertyItem(image: GPIMAGE; propId: PROPID; propSize: UINT;
    buffer: PPROPERTYITEM): GPSTATUS; stdcall;
  {$EXTERNALSYM GdipGetPropertyItem}

  function GdipGetPropertyItemSize(image: GPIMAGE; propId: PROPID;
    var size: UINT): GPSTATUS; stdcall;
  {$EXTERNALSYM GdipGetPropertyItemSize}

  function GdipGetPropertyCount(image: GPIMAGE;
    var numOfProperty: UINT): GPSTATUS; stdcall;
  {$EXTERNALSYM GdipGetPropertyCount}

  function GdipGetPropertyIdList(image: GPIMAGE; numOfProperty: UINT;
    list: PPROPID): GPSTATUS; stdcall;
  {$EXTERNALSYM GdipGetPropertyIdList}

hmmm.. sehe gerade hier ist kein var.
var buffer: PPROPERTYITEM bei GdipGetPropertyItem (Winapi.GDIPAPI) muss das mal testen.

Zitat:
Da ist ein Fehler in der Winapi.GDIPAPI
der Buffer MUSS über var zurückgegeben werden.
Soviel zu Winapi.GDIPAPI

Was gibt er also zurück bei der Winapi.GDIPAPI bei der Funktion GdipGetPropertyItem? NICHTS!
Hier ist auch ein Fehler GdipGetPropertyIdList keine Rückgabe, sollte eigentlich den Zeiger auf das Array der Liste zurückgeben.
Sorry aber mit so was kann man nicht arbeiten.

gruss

Geändert von EWeiss (26. Sep 2018 um 16:27 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Array of Integer und crash

  Alt 26. Sep 2018, 16:21
Code:
DECLARE FUNCTION GdipGetPropertyIdList ( _
     BYVAL pImage AS DWORD, _
     BYVAL numOfProperty AS DWORD, _
     BYREF list AS DWORD _
 ) AS LONG

list
[out] Pointer to an array that receives the property identifiers.

DECLARE FUNCTION GdipGetPropertyItem ( _     
     BYVAL pImage AS DWORD, _
     BYVAL propId AS DWORD, _
     BYVAL propSize AS DWORD, _
     BYREF buffer AS PropertyItem _
 ) AS LONG
buffer
[out] Pointer to a PropertyItem structure that receives the property item.
Auch hier BYREF = var in Delphi!

verstehe wer will.

gruss

Geändert von EWeiss (27. Sep 2018 um 09:41 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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