Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Prozedurale Typen zur Laufzeit erstellen?

  Alt 30. Mai 2008, 16:25
du könntest das ganze indirekt erreichen. Übertrage zum Beispiel einfach ein XML wo mehrere Parameter drin stehen.

Du kannst so zu Beispiel folgendes realisieren:
- DLL bietet eine fest definierte Funktion welche ein XML zurück gibt in dem die angebotenen Funktionen stehen mit den möglichen Parametern
- Die Anwendung wertet das XML aus und kennt somit die Methoden welche durch die XML angeboten wurden
- Die Anwendung ruft dann eine weitere fest definierte Funktion der DLL auf und übergibt ein XML wo der aufzurufende Methodennamen drin steht und die dazugehörigen Parameter.

Du kannst dir ja mal XMLRPC anschauen.

Ein Funktionsaufruf sieht da zum Beispiel so aus:

man schickt folgende XML-Datei hinn (an eine festdefinierte Funktion/Datei)
XML-Code:
<?xml version="1.0" encoding="utf-8"?>
<methodCall>
  <methodName>system.login</methodName>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>username</name>
            <value>
              <string>SirThornberry</string>
            </value>
          </member>
          <member>
            <name>password</name>
            <value>
              <string>geheim</string>
            </value>
          </member>
          <member>
            <name>domain</name>
            <value>
              <string />
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodCall>
und als Antwort kommt dann zum Beispiel zurück:
XML-Code:
<?xml version="1.0"?>
<methodResponse>
  <params>
    <param>
      <value>
        <struct>
          <member>
            <name>domain</name>
            <value>
              <string>default</string>
            </value>
          </member>
          <member>
            <name>sessionid</name>
            <value>
              <string>5e6ce25395545c7cf337714c7f3ddcaa</string>
            </value>
          </member>
          <member>
            <name>kp3</name>
            <value>
              <string>756dfb8d7ff9d4342680469a3169a1fa</string>
            </value>
          </member>
        </struct>
      </value>
    </param>
  </params>
</methodResponse>
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat