Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Chain, Shell, Exec, Run ...

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
OneCypher



Anmeldungsdatum: 23.09.2007
Beiträge: 802

BeitragVerfasst am: 26.10.2008, 14:13    Titel: Chain, Shell, Exec, Run ... Antworten mit Zitat

Bin immer noch am Rätseln wie man den Speicherbereich eines Programmes für ein anderes Programm zugreifbar machen kann...
hab mal folgendes probiert, weils mir interessant vorkam:

program1.exe
Code:

dim test as string
test = "Hallo Welt!"
print @test
shell "t2 " & str(@test)
sleep


t2.exe
Code:

dim shared tp as string ptr
print "Addresse: " & command
tp = val(command)
print "Inhalt: " & *tp


Ich hatte mir überlegt, das ein 2. progamm auf den Speicher des 1. Programms zugreifen kann wenn es die entsprechenden Addressen "kennt".
So wollte ich die Addresse des Strings "test" einfach an das 2. Programm als Parameter übergeben.
Leider kommt nix bei raus traurig(

Dabei hab ich schon alle Varianten ausprobiert wie man t2.exe aufrufen könnte. Also Chain, Run, Exec und Shell. Aber anscheinend gibts da keinen "großen" unterschiede.

Weiss vielleicht einer wie es funktionieren könnte?


PS: Bevor jetzt einer schreibt, dass ich einfach den Variablen-Inhalt als Parameter übergeben könnte: Mir gehts darum komplexere Variablen (UND FUNKTIONEN!) des 1. Programmes für das 2. Programm zugänglich zu machen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 26.10.2008, 14:17    Titel: Antworten mit Zitat

das geht aus gutem grund nicht so einfach unter modernen betriebssystemen. allerdings kannst du DLLs benutzen...
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 26.10.2008, 14:27    Titel: Antworten mit Zitat

Das sind alles virtuelle Adressen.

Bei Prog A kann bei 0x12345678 "Hallo Welt!" stehen, bei Prog B an selbiger Addresse "Ich bin doof!"...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 26.10.2008, 14:33    Titel: Antworten mit Zitat

Die Programme werden gerade wegen des Schutzes vor Manipulation in getrennten, virtuellen Speicherbereichen ausgeführt. Wild im Speicher rumschreiben wie bei DOS wird so verhindert. Du kannst allerdings mittes Memory Mapped Files Bereiche des Speichers unter Anwendungen teilen. Wenn ich mich recht entsinne, hatte volta dazu mal ein Beispiel geschrieben.
_________________
Eine handvoll Glück reicht nie für zwei.
--
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz