AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Fehler in Record-Ausrichtung bei Übergabe an Visual C DLL
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler in Record-Ausrichtung bei Übergabe an Visual C DLL

Ein Thema von oki · begonnen am 30. Dez 2002 · letzter Beitrag vom 5. Jan 2003
Antwort Antwort
Seite 3 von 3     123   
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#21
  Alt 3. Jan 2003, 23:34
Also eine Verbindung zwischen 2 TempObjects bekomme ich hin. Wenn es mehrere werden, dann kommt nur eine AV. Hast du ein funktionierendes C(++) Beispiel für die Verbundungen. Denn der Beispiel C++ Code, den du mir geschickt hast, fügt nur TempObjects hinzu und entfernt sie wieder.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#22
  Alt 4. Jan 2003, 00:43
Eines würde mich mal interessieren. Wer hat denn diese Header-Übersetzung geschrieben? Der "BOOL -> Boolean" Fehler ist noch der kleinste. Was ich gerade feststellen musste, ist, dass Delphi die Aufzählungstypen in 1 Byte quetscht, wohingegen C++ 4 Bytes beansprucht. Somit stimmt der Typ TTempConnect nicht mehr. Nachdem ich die Headerdatei überarbeitet habe. Läuft das Verbindung Setzen reibungslos.

Da du schriebst, dass du Delphi 5 einsetzt, war es natürlich nicht gerade leicht, eine geeignete Möglichkeit zu finden, einen Aufzähungstyp auf 4 Byte zu erweitern. Unter Delphi 6 ginge dies ganz einfach so:
TMapColorIndex = (MCI_..., ..., MCI_TRIM_TO_32BIT=$0fffffff); Unter Delphi 5 geht dies nicht. Und da ich keine Lust hatte für jeden Wert eine Konstante mit laufender Nummer zu schreiben (bei 270 Zeilen schreibe ich mir ja die Finger wund). habe ich einen kleinen Zwischen Record gebaut.
Delphi-Quellcode:
_TMapColorIndexType =
  (MCI_BUILDUP_INNER,
  MCI_WATER_INNER, ...);

TMapColorIndex = packed record
  case Integer of
    0: (Value: _TMapColorIndexType);
    1: (Int: Integer);
end;
Setzen kann man nun die einzelnen Werte über das Feld Value:
Delphi-Quellcode:
var m: TMapColorIndex;
m.Value := MCI_BUILDUP_INNER;
Angehängte Dateien
Dateityp: zip MapTest_109.zip (18,3 KB, 1x aufgerufen)
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#23
  Alt 4. Jan 2003, 14:19
Hallo jbg,

ich habe gerade einen roten Kopf bekommen.

Die Header-Datei habe ich übersetzt. Vielleicht können wir das noch ein bischen runterspielen damit ich nicht ganz so dumm dastehe.

Ich habe leider nie in C programmiert und so sind meine Kenntnisse auch im Bereich der Deklarationen für C sehr stümperhaft.

Zu meiner Ehrenrettung sei gesagt, dass ich meine übersetzte Headerdatei den C-Leuten zukommen lassen hab. Die haben alles für o.k. befunden. Offensichtlich sind die in Delphi genauso blass wie ich in C.

Beispiel-Code für Verbindungen in C habe ich leider nicht. Ich denke aber der tut nach deiner zweiten Nachricht wohl nicht mehr zur Sache.

Jetzt dann mal eine Frage hinterher:

Kann mann den Eintrag im Record nicht als DWord-Typ deklarieren und bei der Verwendung über Type-casting füllen?
Somit würde ich einfach folgendes tun:

toc_collor := DWord(MCI_ROUTE_NORMAL);

o.k. schon mal unendlichen Dank. Ich teste mal den Rest, bis dann

Olaf[/delphi]
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#24
  Alt 4. Jan 2003, 14:23
Das kann man schon. Nur wollte ich genau dieses Typecasten verhindern. Aber wenn es dir gefällt, dann musst du nur die Deklarationen abändern.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#25
  Alt 5. Jan 2003, 16:18
Hallo jbg,

ich schreibe gerade meine Quellen um und räume in meinem Programm etwas auf.
Deine Quellen habe ich getestet und sie laufen auch bei mir. Komischerweise wird bei mir aber nicht der eingefügte Text über den Verbindungslinien ('Start', '1', ...) angezeigt. Offentsichtlich ist da noch was im Busch!
Ich melde mich noch mal wenn ich mit meinem Standardprogramm weiter bin.

Gruß Olaf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 14:30 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