DLLStruct an zweites, kompiliertes Script übergeben - geht nicht...

  • Hallo Comunity,
    wie sich der Überschrift entnehmen lässt habe ich ein Problemchen mit der Übergabe einer DLL-Struct an ein anderes, kompiliertes Script.

    Ich hatte bereits mit DLLStructs gearbeitet, und innerhalb des ersten Scriptes funktioniert es auch.
    Erstmal den Code des Start-Scriptes

    ScriptA


    ScriptA erstellt die Struct und Startet das kompilierte ScriptB:

    ScriptB

    Entweder gibt ScriptB total falsche Werte aus, oder es stürzt sofort ab... Nur ist mir nicht ganz klar wieso?!?
    Anscheinend übergebe ich die Struct falsch, oder ich baue diese in ScriptB falsch auf.

    Momentan weiß ich mir nichtmehr zu helfen... Ich hoffe Ihr könnt mir auf die Sprünge helfen :D

    Grüsse!

  • Script B kann nicht so ohne weiteres einen Pointer von Script A nutzen da es sich um unterschiedliche Prozesse handelt. Ich hab sowas wie du es machen möchtest mal mit der NomadMemory UDF erziehlt (anbei der einzige mir bekannte "gute" nutzen der UDF). Wenn ich später bei mir am Rechner bin kann ich dir mal schnell ein beispiel zusammen basteln wenn du brauchst.

  • ...Argh,
    also unterschiedliche Speicherbereiche??
    Ich dachte immer das die Structs den allgemeinen Speicherbereich nutzen...

    [EDIT]
    Es würde also eher der Umweg über eine externe DLL gehen??
    Die müsste doch nur eine Struct haben - die 1:1 so aufgebaut ist wie in meinem Testscript?!?
    Nur wie realisiere ich dann die variable Stringgröße?

    Grüsse!

    Einmal editiert, zuletzt von Techmix (19. März 2014 um 16:55)

    • Offizieller Beitrag

    ...Argh,
    also unterschiedliche Speicherbereiche??
    Ich dachte immer das die Structs den allgemeinen Speicherbereich nutzen...

    [EDIT]
    Es würde also eher der Umweg über eine externe DLL gehen??
    Die müsste doch nur eine Struct haben - die 1:1 so aufgebaut ist wie in meinem Testscript?!?
    Nur wie realisiere ich dann die variable Stringgröße?

    Grüsse!

    Nah.. Das ding ist, ein Prozess darf nicht mehr so ohne weiteres auf die Strukturen eines anderen Prozesses zugreiffen. Es gibt maßig Tools die es trotzdem können, wie mein Vorrender schon gesagt hat, z.B. die NomandMem UDF.

    Es gibt eine UDF hier im Forum die via Strukturen eine Kommunikation zwischen zwei unterschiedlichen Scripten (Prozessen) bewerktstelligt. Find ich leider gerade nicht, musst mal googlen ;)

    Gruß,
    Spider

  • OK,
    erstmal Danke für die Antworten!
    ABER ich habe jetzt eine Lösung genommen die zwar MEILENWEIT vom Thema abweicht, aber eben funktioniert...
    Mit ner einfachen INI, darin die entsprechenden Daten sichern, auslesen und löschen. Ist einfacher als mich jetzt wieder mit UDF´s wie der NoMadMemory rumzuschlagen.

    Trotzdem währe der Weg mit der Struct eben eleganter - deswegen lasse ich den Präfix noch auf offen!

    Es geht eigentlich darum größere Datenmengen (100kb - 900kb) an den gestarteten Prozess zu übergeben - und das geht nunmal nicht mit der Kommandozeile ;)

    Grüsse!

    [EDIT]
    ..ich werde mir wohl doch noch die 'Exchange Variables' UDF anschauen :D Sieht ganz gut aus...

    [EDIT2]
    Die INI-Befehle haben anscheinend ein Zeichenlimit, es wurden nur Fehler produziert... Also habe ich eine Simple FileRead/Write Methode genommen, komme noch nicht ganz mit der Exchange Variables klar!?! Ich kommuniziere mit momentan 4-8 eigenen Prozessen über ein Master-Script, und da ist die File Variante deutlich einfacher...

    2 Mal editiert, zuletzt von Techmix (20. März 2014 um 19:21)