Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Prism WSDL importieren (Webreferenz) in D2005 PE ? (https://www.delphipraxis.net/44055-wsdl-importieren-webreferenz-d2005-pe.html)

CodeX 18. Jul 2005 14:07

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
hallo uwe,

den ersten teil habe ich hinbekommen. den zweiten kann ich nicht nachvollziehen. zu was gehört denn dieses "csc"?`
ich habe weder im .NET SDK noch im delphi verzeichnis eine csc.* datei gefunden.
im endeffekt geht es ja nur darum, eine dll datei zu erhalten, die ich damm in dem projekt nutzen kann, richtig?
wenns an delphi 2005 pe scheitert, wäre es dann möglich, dass du deine geposteten schritte einfach selber machst und mir die dll detei zur verfügung stellst?
http://www.google.com/apis/download.html

danke

Robert_G 18. Jul 2005 15:02

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
Nur um es mal zusammenfassend klarzu stellen... ;)

Dein VS03\SDK Order ist der Ordner in dem das VS03 das SDK installier, wenn es vorher noch nicht installiert war.
Da wsdl.exe genau wie xsd.exe (beide interessant für das Thema :) )zum SDK gehören, liegen sie nunmal da...
Egal ob es nun %ProgramFilesDir%Microsoft.Net\... oder Visual Studio 20S03\... heißt. ;)
Wenn du
Code:
wsdl /language:[Namespace.CodeDom] /out:BabelCode.pas [url]http://dotnet.borland.com/babelcode/converter.asmx?WSDL[/url]
Für Namespace und Class name des Delphi.Net Codedoms würde den Reflector nehmen.
*wuppdi* Hast du deinen Proxy.
Ähnlich kannst du xsd.exe für eventuelle XSDs verwenden, die nicht direkt vom WebService angeboten werden, aber dir clientseitig Arbeit abnehmen könnten (Wäre bei dem simplen Service wohl unnötig ;) ).

Ich hätte zwar hier den C# CodeDome gefolgt vom csc verwendet und dann die Assembly statt den Code direkt zu verwenden...
(Bei Delphi & WSDL muss ich immer an den alten WSDL Importer, mit 150 Zeilen Forward declares denken, die trotzdem nicht gehen... :? )
Das schöne an .Net ist ja, dass man eine C# ClassLib prima mit anderen Sprachen nutzen kann. :)

UweR 18. Jul 2005 15:08

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
Hallo CodeX

csc.exe ist der C#-Compiler von Microsoft, du findest ihn auch nicht im Framework-SDK, sondern direkt im Framework-Verzeichnis. Er lümmelt sich somit irgendwo unterhalb deines Windows-Verzeichnisses rum. Wenn es jetzt immer noch nicht funzt schick mir ne PN mit deiner Mail-Adresse, dann backe ich dir das Ding zusammen und schicke es dir zu.

CodeX 18. Jul 2005 15:53

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
ok, das mit der dll habe ich jetzt hinbekommen.
nun müsste ich es aber trotzdem noch in mein programm integrieren können :?
dabei versuche ich zum einstieg das hier nachzuvollziehen: http://www.dsdt.info/tutorials/wsclient/?page=4

so habe ich das jetzt einbinden wollen:
Delphi-Quellcode:
function GetGoogleSearchPort(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): GoogleSearchPort; stdcall; external 'GoogleSearch.dll';
er mekert aber bei THTTPRIO und GoogleSearchPort rum. klar, kann er ja auch einfach so nicht kennen.
bei uses müsste noch sowas wie "GoogleSearch" dazu, aber ich habe ja keine GoogleSearch.pas :?

Phoenix 18. Jul 2005 15:56

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
Du musst eine normale Referenz auf die .DLL hinzufügen. Das geht über Projekt, Referenz hinzufügen einwandfrei. Und dann kommt freilich in die Uses oben noch die Referenz hinein.

Aber was willst Du mit der external-Deklaration? Die gibts in .NET nicht mehr.

Robert_G 18. Jul 2005 16:27

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
Zitat:

Zitat von Phoenix
Du musst eine normale Referenz auf die .DLL hinzufügen. Das geht über Projekt, Referenz hinzufügen einwandfrei. Und dann kommt freilich in die Uses oben noch die Referenz hinein.

Da Wissdel alles mit absoluten namespaces verwendet ist der eintrag in der uses clause unnötig, die Referenzen müssen aber auf jeden Fall gestzt werden.
Zitat:

Zitat von Phoenix
Aber was willst Du mit der external-Deklaration? Die gibts in .NET nicht mehr.

Hmpf? :shock:
  • Falls es wirklich eine Win32 dll ist:
    Würde das in D.Net nicht so aussehen? (Bin mir nicht sicher, aber so hätte ich es in D.Net versucht...)
    Delphi-Quellcode:
    [DllImport('GoogleSearch.dll')]
    function GetGoogleSearchPort(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): GoogleSearchPort; external;
  • Falls es Teil des WebService Proxies ist:
    Dann BITTE: lese dir durch was du da machst...
    Ich finde nichts nerviger als solche Stückelei nur weil jemand zu faul zum Lesen ond/oder Nachdenken ist.

Phoenix 18. Jul 2005 16:36

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
Zitat:

Zitat von Robert_G
Zitat:

Zitat von Phoenix
Aber was willst Du mit der external-Deklaration? Die gibts in .NET nicht mehr.

Hmpf? :shock:[list][*]Falls es wirklich eine Win32 dll ist:
Würde das in D.Net nicht so aussehen? (Bin mir nicht sicher, aber so hätte ich es in D.Net versucht...)
Delphi-Quellcode:
[DllImport('GoogleSearch.dll')]
function GetGoogleSearchPort(UseWSDL: Boolean; Addr: string; HTTPRIO: THTTPRIO): GoogleSearchPort; external;

Ähh. ja. Aber er hat ja mit wsdl und csc dei DLL erstellt. Von daher gehe ich davon aus das er innerhalb von .NET bleibt und da kann er das external gerade mal vergessen. Und wenn er native Win32 DLL's nutzen will... nungut.... ich vermeide die P/Invokes wo es nur geht.. also eigentlich überall. Bei mir gibts keine externals in .NET ;-)

Robert_G 18. Jul 2005 17:08

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
Zitat:

Zitat von Phoenix
Bei mir gibts keine externals in .NET ;-)

Da bin ich etwas kompromissbereiter geworden.
Ich habe mir zur Zeit der 2.0 Beta 1 viele Klassen in 1.1 so gebaut, dass sie denen aus 2.0 entsprechen. (Zum Beispiel ein ListView mit Gruppierung)
Natürlich braucht man dazu einiges an Invokes, da ich aber wusste, dass das Projekt nach 2.0 fertig wird... :zwinker:
Auch invokes der GDI+ sind ganz nett wenn man cooles gradiell transparentes Drag'nDrop bauen will, etc. ...
(Solche Mini invokes laufen übrigens auch ganz gut ohne deine Assembly auf FullTrust zu scheuchen. :) )

CodeX 19. Jul 2005 11:40

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
:?
ich versuche, wie gesagt, erstmal nur diese anleitung nachzuvollziehen: http://www.dsdt.info/tutorials/wsclient/?page=4
da ich aber d2005pe habe, kann ich die schritte wie sie dort stehen nicht durchführen, weil zb der WSDL-Import-Assistent fehlt.
deshalb das workaround. bis zur dll bin ich ja jetzt gekommen. nun muss ich noch auf deren funktionen und variablentypen zugreifen können.
dass das mit reinem .NET geschehen soll, steht da nirgends. möglich wäre es natürlich. aber mir wäre es wesentlich lieber, wenn ich eine normale Win32 anwendung erstellen könnte.
ich habe nun also noch die dll über "referenz hinzufügen" importiert und auch mal bei uses aufgenommen.
trotzdem mekert er immer noch bei THTTPRIO und GoogleSearchPort rum.
:?

Phoenix 19. Jul 2005 14:34

Re: WSDL importieren (Webreferenz) in D2005 PE ?
 
Zitat:

Zitat von CodeX
aber mir wäre es wesentlich lieber, wenn ich eine normale Win32 anwendung erstellen könnte.

Gut.. eine Win32-DLL aus einem .NET Programm aufrufen geht ja noch. Aber mir wäre neu, das man ein .NET Assembly (also eine .NET - dll) wie Du es mit WSDL.exe und dem csc erstellt hast in einer normalen Win32-Anwendung verwenden kann. Das geht nicht.

Ich habe dieses Thema ja erstellt, und gaaanz oben steht bei Platform ja auch .NET drin - deswegen gehen wir hier eben auch von .NET aus.

Du hast nun also eine dll - also ein Assembly - das die Schnittstelle zwischen einem .NET - Programm und dem Webservice darstellt. Dieses kannst Du auch nur unter .NET verwenden. Und dafür ist die Vorgehensweise ja bereits erklärt: Assembly in die Referenzliste aufnehmen, in die Uses-Klausel aufnehmen und *wuppdi* kannst Du den Service verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:14 Uhr.
Seite 2 von 2     12   

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