![]() |
Daten zwischen C++ und Delphi-Programm austauschen
Moin Moin,
ich habe eine C++ programm, dieses Programm zeigt mit Mitglieder eines Channels, wer redet etc an. (Der Entwickler würde mich ggf Methoden etc bereitstellen.) Diese Daten möchte ich in ein Delphiprogramm bekommen, um sie dort zu verarbeiten. Generell würde es mich interessieren, wie 2 Programme untereinander Daten austauschen :) Über eine Antowrt freu ich mich. MfG Stefan |
Re: Daten zwischen C++ und Delphi-Programm austauschen
IPC, Named Pipes, MailSlots, Dateien, Datenbank, TCP/IP-Verbindung, ...
|
Re: Daten zwischen C++ und Delphi-Programm austauschen
Moin Moin,
was denn so Wortkark am frühen morgen :) Danke erstmal für deine Antwort!! Ich denke das Named Pipes bzw Mailboxen(da nicht synchron) sich ganze interessant anhören und im msdn ganz nett lesen. Ich werde mich mal an nen kleines Tool machen ums nen bissle zu testen :) Danke! Über weiter Antworten, Anregungen bzw. gute Tuts bin ich dankbar :) MfG |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Moin Moin,
also ich habe mich dann heute mal ein bissle mehr mit dem Thema beschäfftigt... Ich bin zu dem Entschluss gekommen, das ich named pipes benutzen möchte, da diese auch asynchron laufen können. Leider habe ich kein Beispiel, Tut etc gefunden. Die MSDN Sachen sind in c++ / c und ich habs leider nicht geschafft diese umzuschreiben. Ich habe auch die Komponenten zum Einbinden hier im Forum gefunden, damit konnte ich bisher leider auch kein Ziel finden :( Danke schonmal, mfg |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Liste der Anhänge anzeigen (Anzahl: 1)
Eine kleine Demo ist angehängt. Wenn Fragen sind, fragen :).
|
Re: Daten zwischen C++ und Delphi-Programm austauschen
Hey,
DANKE 0xF30FC7 für die schnelle Antwort. Leider sagt er, er kennt diese jwawinbase, jwawintype, jwawinnt, jwaaccctrl, jwaaclapi, jwawinerror Units, bzw -.dcu's nicht. Desweiteren möchte er bei WriteFile
Delphi-Quellcode:
bei Value eine Variable :) und bei nil einen Parameter mit dem Tpen.
WriteFile(PipeHandle, @Value, 4, @tmp, nil);
MfG |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Ich persönlich benutz nicht die Windows Unit sondern die JEDI API Header (jwa*-Dateien), da diese zum einen vollständiger sind und zum anderen (fast immer) genauer. Zu bekommen sind die Dateien hier:
![]() |
Re: Daten zwischen C++ und Delphi-Programm austauschen
KK, jetzt muss ich nur nochmal sehen, wie ich die schön in Delphi eingebunden bekomme :)
Aber Danke, das scheint zu Funktionieren :) bzw ES FUNKTIONIERT :) Ich mach mal weiter :) MfG |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Mmh,
diese Zeile verursacht an nem anderen System eine Zugriffverletzung... GetAclInformation(ACL, @ACL_SIZE, sizeof(ACL_SIZE), AclSizeInformation); Hast du ne Idee? MfG |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Wahrscheinlich liegt es daran, das es bei Dir die Gruppe "Administratoren" nicht gibt ;). Der PipeServer lässt Verbindungen nämlich nur zu, wenn der Client von einem Benutzer aus dieser Gruppe gestartet wurde. Wenn Du das nicht benötigst (z.B. weil die beiden Anwendungen im selben Userkontext laufen), ließe sich der komplette Quellcode nochmal deutlich vereinfachen.
|
Re: Daten zwischen C++ und Delphi-Programm austauschen
Hey, du bist ja echt immer fix dabei :)
Also die Anwedungen laufen immer unter dem gleichen user und nur lokal :) MfG Ps:
Delphi-Quellcode:
so gehts ;)
So wirft es keine Fehler mehr.
[pre] if (SetEntriesInAcl(1, EA, nil, ACL) = ERROR_SUCCESS) then begin GetAclInformation(ACL, @ACL_SIZE, sizeof(ACL_SIZE), AclSizeInformation); getmem(SD, SECURITY_DESCRIPTOR_MIN_LENGTH + ACL_SIZE.AclBytesFree + ACL_SIZE.AclBytesInUse); InitializeSecurityDescriptor(sd, SECURITY_DESCRIPTOR_REVISION); SetSecurityDescriptorDacl(sd, TRUE, ACL, FALSE); end;[/pre] Was macht das denn ganz genau. es legt zurgiffberechtigungen fest? MfG |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Liste der Anhänge anzeigen (Anzahl: 1)
So, hier mal ohne explizites Setzen der Zugriffsberechtigung, weil Du es ja nicht benötigst. Ich habs dann auch gleich mal gegen die normale "windows.pas" compiliert, damit Du die JWA Units nicht mehr benötigst ;).
|
Re: Daten zwischen C++ und Delphi-Programm austauschen
hey das cool :)
BIG THX :) |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Hey,
zum Übertragen wird ja ein DWord übergeben. Wass muss ich bei Strings machen? Wenn ich da nen String übergebe, dann ist beim ersten mal was falsches drinne und es kommen später fehler... naja muss erstmal los zum sport. mfg |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Wenn der Programmierer dir etwas bereit stellen würde wäre es das einfachste einfach eine DLL bereit stellen zu lassen und auf deren funktionen dann zu zugreifen. Dann Brauchst du dich nicht darum kümmern wie die Daten aus dem Programm ausgelesen werden und der andere Programmierer hat freie Wahl.
|
Re: Daten zwischen C++ und Delphi-Programm austauschen
Moin,
@SirThornberry: Werde mir das mit DLL's Sonntag mal anschauen. An eine Datei (z.B.: Ini) habe ich auch schonmal gedacht, nur da sprach das Argument der Festplattenzugiffe bei sekundenweiser Aktualisierung dagegen. Aber ich werds der einfach halt halber mal mit ner Datei bauen und mal sehen wie es sich auswirkt. MfG |
Re: Daten zwischen C++ und Delphi-Programm austauschen
Moin :)
Ich bins mal wieder. Über DLL scheint mir vom Grundgedanken her ganz nett zu sein. Nur leider bekomme ich es schon nicht hin zwischen zwei Delphianwednungen Variablen darüber auszutauschen. Wenn ich Code minimieren möchte, leuchtet mir eine DLL ein, da die Funktionen aus der DL Werte aufnehmen,verarbeiten und zurückgeben. Nun habe ich zwei Anwendungen. Die eine beinhaltet Variable a, die andere die Variable b. Wenn ich über die Dll aus Programm a, auf die Variable b zugreife, bekomme ich logischerweise eine Exception, da das Objekt nicht erstellt ist. Wenn nun aber beide Programme laufen, ich der DLL einen Pointer auf das Objekt 2 gebe, kann ich aus der A nicht auf diesen Zugreifen. Von daher verstehe ich leider noch nicht ganz, wie ich darüber etwas austauschen soll :wall: Dort ![]() MfG //Edit: Ich lasse jetzt aus der dll heraus das Programm b erzeugen. Jetzt kann ich auf die gemeinsame Variable, bzw auf die Werte zugreifen. Mal sehen wie ich das jetzt nach c bekomme, sodass wenn der Haken "Tool" gesetzt ist, er das tool ertsellt :) Ich bin da mal weiter dran :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 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