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 2 von 3     12 3      
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#11
  Alt 1. Jan 2003, 19:19
Den C Beispiel-Code (zumindest das Interessante) könntest du doch mal posten. Deine Delphi deklaration sowie die Einbindung der Funktion (function ... external 'dllname.dll') wäre auch nicht schlecht. Dann würde diese Diskussion nicht nur auf theoretischer Basis ablaufen.
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#12
  Alt 1. Jan 2003, 21:00
Erst mal an alle die mir bei meinem blöden Problem helfen Dank!!!!

Ich habe jbg gerade den Code in das private Postfach gestellt. Da die DLL's lizensrechtlich geschützt sind möchte ich das Ganze nicht so doll öffentlich machen. Sorry !!

Wer mir sonst noch weiter helfen kann soll sich melden. Ich sende dann den Code auch dort hin.

So, dann Dank, Dank, Dank bis hierhin

Gruß Olaf
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#13
  Alt 1. Jan 2003, 22:28
Zitat von oki:
Ich habe jbg gerade den Code in das private Postfach gestellt.
Da kam nichts an.
Ich wollte auch nicht, dass du gleich die ganze DLL schickst, sondern aus dem C Beispiel nur die Deklaration der Struktur und den Aufruf sowie die Dekl. der Funktion. Dasselbe auch von deinem Delphi Beispiel.
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#14
  Alt 2. Jan 2003, 16:07
Ich habe den Fehler gefunden. Und zwar liegt es an der Übersetzung des Typs BOOL nach Boolean. Der BOOL Typ ist als int deklariert und somit 32 Bit groß. Die Entsprechung in Delphi ist LongBool (32 Bit) und nicht Boolean (8 Bit). Also einfach in der Datei MapDefs.pas ein Suchen/Ersetzen machen: Boolean -> LongBool
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#15
  Alt 2. Jan 2003, 19:20
Hallo jbp,

wenn das stimmt gebe ich einen aus. Ich prüf das gleich.

Gruß Olaf
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#16
  Alt 2. Jan 2003, 19:32
Hallo jbp,

ähhhm, nach dem Motto suche einen Fehler und du findest 10. Ich habe Deinen Vorschlag gerade umgesetzt. Das hat meinen Fehler aber leider nicht beseitigt.

Sag mal kurz bescheid ob du das Projekt mal ausprobiert hast und mit welcher Delphi-Version.

Gruß Olaf
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#17
  Alt 2. Jan 2003, 22:28
Ausprobiert habe ich es unter Delphi 6 Pro und WinXP Pro. Das Programm läuft soweit, dass es ohne dass ein Button gedrückt wird, ohne Fehler startet. Also den wahren Fehler habe ich noch nicht gefunden. Aber so weit wie ich gerade bin, liegt es nicht an der Ausrichtung der Felder, denn die ist auch bei C++ trotz ALIGN:8 nicht anders als die von Delphi.
  Mit Zitat antworten Zitat
oki

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

herzlichen Dank für Deinen Code zu meinem Problem. Ich habe diesen mal ausprobiert. Dazu mußte ich aber die Direktive {$Align 8} auskommentieren da D5 diese nicht kennt. Das Setzen der Objecte klappt anstandslos. Beim Verbinden bekomme ich den Fehler Lesen von Adresse $FFFFFFFF.
Da Du auch diese Methode verändert hast gehe ich davon aus, dass sie bei Dir läuft.
Ich bin jetzt immer mehr davon überzeugt, dass ich auf mind. D6 updaten muß um die Sache in den Griff zu bekommen.

Meine getesteten BS sind übriegens Win98 und 2000. Bei beiden mein Fehler.

Gruß Olaf
  Mit Zitat antworten Zitat
jbg

Registriert seit: 12. Jun 2002
3.483 Beiträge
 
Delphi 10.1 Berlin Professional
 
#19
  Alt 3. Jan 2003, 20:04
Ich habe die beiden Buttons natürlich einzeln getestet. Da kommt kein Fehler. Du musst folgendes einfügen, damit es ohne AV funktioniert.
Delphi-Quellcode:
procedure TForm1.MakeCon(Anzahl: Integer);
...
begin
  Viewer := MapForm.Viewer;
  if Anzahl < 2 then Exit;

  // alle bestehenden Temp. Objecte entfernen
  Viewer.RemoveAllTempObjects; <----
  Viewer.RemoveAllConnections; <----
[/quote]
  Mit Zitat antworten Zitat
oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#20
  Alt 3. Jan 2003, 21:46
Hallo jbg,

ich hab die ganze Zeit gegrübelt was Du mir beibringen willst. Da ich Dir die Doku zur DLL nicht mit zugestellt habe reden wir beide wahrscheinlich gerade aneinander vorbei. Mit der Methode MakeCon werden Verbindungslinien zwischen temp. Objekten gezogen. Sind diese nicht vorhanden, so wird keine Linie gezeichnet.

Mein Testbeispiel ist hier natürlich nicht sehr plausibel. Du mußt zuerst eine Anzahl von Objekten setzen und kannst diese dann mittels MultitempConnect verbinden. Die Elemente gelten wie folgt:
Delphi-Quellcode:
  TMultiTempConnect = record
    mtc_startid : UINT; // Ausgangsobjekt der Linie
    mtc_connection : TTempConnect; // Struktur mit Zielobjekt und
                                      // Verbindungsattributen
Die ID wird beim Setzen der Objekte (SetTemoObjectExt) festgelegt. Im Normalfall sollte sie eindeutig sein (beim Test erst mal vernachlässigt, ist hierfür alles nicht so wichtig; wird dann alles in meiner eigentlichen Applikation berücksichtigt).

Also, der Normalablauf ist so:

- Setzen einer Anzahl von Objekten mittels SetTempObjectExt,
- Verbinden der Objekte mittels AddMultiConnections
- neu zeichnen der Karte mittels Redraw zur Anzeige der Verbindungslinien.

Dann auf ein Neues.

Gruß Olaf
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:24 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