AGB  ·  Datenschutz  ·  Impressum  







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

Error 2008 - inkompatible Typen

Ein Thema von WerkstattBoss · begonnen am 18. Aug 2016 · letzter Beitrag vom 18. Aug 2016
Antwort Antwort
Seite 1 von 2  1 2      
WerkstattBoss

Registriert seit: 17. Sep 2006
Ort: Bremerhaven
8 Beiträge
 
Delphi XE2 Enterprise
 
#1

Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 15:51
Delphi-Version: XE2
Hallo,
ich bekomme beim, kompilieren den Fehler 2008
Delphi-Quellcode:
procedure acLoadResStr(var AValue: acString; ALib: HModule; AIdent, DefValue: integer; Suffix: acString = ''); overload;
var
  ResStringRec: TResStringRec;
begin
  if Lib <> 0 then begin
    ResStringRec.Module := {$IFDEF DELPHI5}@Longint(ALib){$ELSE}@ALib{$ENDIF} ;<-----------------------in dieser Zeile
    ResStringRec.Identifier := AIdent;
und ich weiß nicht weiter.
Der code stammt aus einer kommerziellen Library, ich habe die Sourcecode Lizenz. Versuche, den Programmierer zu erreichen, fruchten nicht.

Irgendeine Idee?

TIA Rolf
Mach alles so einfach wie nötig, nicht einfacher (Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#2

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 16:10
Dazu müsstes du auch die Deklaration von TResStringRec mal posten, damit man sehen kann wie TResStringRec.Module definiert ist.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 16:18
Erstmal fehlen hier "alle" wichtigen Infos:
* was für eine Lib
* was für Typen, bzw. wie ist TResStringRec deklariert? (man mag es nicht glaube, aber Strg+C funktioniert auch im Compiler-Log)
* und was soll DELPHI15 sein? (ich weiß doch nicht, wie die Definition von dem aussieht, denn das ist keine Definition von Delphi/Embarcadero)

Delphi 7 = Compiler Version 15
Delphi XE = Product Version 15
Delphi XE7 = IDE Version 15

XE2 : Compiler 23, Product 16, IDE 9

Ich denk jetzt einfach mal, das ist ein Quellcode "nur" für (bis) XE (Product 15).
{$IFDEF DELPHI5} sollte dann wohl {$IFDEF DELPHI6} oder eher {$IFDEF DELPHI5undhöher} heißen, oder was auch immer die da definiert haben.
$2B or not $2B

Geändert von himitsu (18. Aug 2016 um 16:20 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#4

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 16:23
* und was soll DELPHI15 sein?
Wo steht Delphi15?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#5

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 16:25
{$IFDEF DELPHI5}@Longint(ALib){$ELSE}@ALib{$ENDIF}
$2B or not $2B
  Mit Zitat antworten Zitat
WerkstattBoss

Registriert seit: 17. Sep 2006
Ort: Bremerhaven
8 Beiträge
 
Delphi XE2 Enterprise
 
#6

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 16:27
@himitsu

Lib : Alphaskin Version 11.13

Delphi-Quellcode:
TResStringRec = packed record
    Module: ^Cardinal;
    Identifier: NativeUint;
  end;

{$IFDEF DELPHI5}@Longint(ALib){$ELSE}@ALib{$ENDIF} => $Ifdef Delphi5 ... $Else
Ausnahme für Delphi 5, sonst ...
Mach alles so einfach wie nötig, nicht einfacher (Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#7

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 17:40
In XE2 entspricht HModule = THandle = NativeUInt, was nicht strikt kompatibel zu Cardinal ist.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
WerkstattBoss

Registriert seit: 17. Sep 2006
Ort: Bremerhaven
8 Beiträge
 
Delphi XE2 Enterprise
 
#8

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 17:43
Das bedeutet praktisch ?
Mach alles so einfach wie nötig, nicht einfacher (Einstein)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#9

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 17:48
Das bedeutet praktisch ?
Daß du für XE2 das IFDEF erweiterst und einen entsprechenden Cast machst. Aber Vorsicht: das funktioniert nur unter 32-Bit. Bei 64-Bit sind Cardinal und NativeUInt nicht mehr binär-kompatibel. Eigentlich ist die Deklaration des Module-Felds ungünstig. Wenn da immer Pointer auf HModule reinkommen, dann sollte man das auch so deklarieren. Ist das denn die zu XE2 passende Version der Lib oder gibt es da auch was neueres?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Error 2008 - inkompatible Typen

  Alt 18. Aug 2016, 17:49
Ändere es in NativeUInt
Markus Kinzler
  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 06:51 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