Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   "IPProcs is not defined" (https://www.delphipraxis.net/211781-ipprocs-not-defined.html)

Rabenrecht 2. Nov 2022 09:49

"IPProcs is not defined"
 
Folgende Meldung bei Aufruf des Konstruktors der Klasse, nennen wir sie mal TMeinRestClient, die einen TRESTClient instanziiert:
"IPProcs is not defined. Make sure IPPeerCommon (or an alternative IP Implementation unit) is in the uses clause"

Das Problem ließ sich durch Hinzufügen von IpPeerClient in die Uses beheben... vorerst.

Bei weiteren Tests wird TMeinRestClient in einem anderen Kontext erzeug und schwupps ist die Meldung wieder da.

Eine völlig nachvollziehbare Antwort darauf könnte nun sein: "sieh mal zu, dass du deine Projektstruktur, Abhängigkeiten usw. auf die Reihe kriegst!"

Aber lass uns mal annehmen, dass dies hier einfach nicht möglich ist.


Gibt es nun etwas, dass ich in TMeinRestClient anders machen kann, vielleicht alles expliziter, so dass ganz unabhängig davon, aus welcher Assembly TMeinRestClient erzeugt wird, alles funktioniert?

BerndS 2. Nov 2022 10:06

AW: "IPProcs is not defined"
 
In der Unit, in der TMeinRestClient definiert wurde, sollte auch IpPeerClient im Uses stehen.

Rabenrecht 2. Nov 2022 10:33

AW: "IPProcs is not defined"
 
Jo, so ist es auch.

Das Problem taucht nur auf, wenn ich debugge...

Tja, dann debugge ich das halt nicht? :|

BerndS 2. Nov 2022 10:42

AW: "IPProcs is not defined"
 
Das verstehe ich jetzt auch nicht:gruebel:
Die Unit IPPeerCommon ist auch drin?

TiGü 2. Nov 2022 12:15

AW: "IPProcs is not defined"
 
Die IPPeerCommon.dcu (!) gibt es für alle Varianten (Win32/Win64, Debug/Release) also mindestens vier Mal und wird gefunden (Such/Bib-Pfade korrekt)?

Rabenrecht 2. Nov 2022 13:03

AW: "IPProcs is not defined"
 
Ok, hatte nichts mit dem Debugger zu tun, habe das nur falsch interpretiert.

Ich konnte das Problem jetzt auch beheben.

Ich habe festgestellt, dass ich zuerst eine Aktion aus einem anderen Frame anstoßen muss.

Dh.:

Frame A -> klick auf Button -> TMeinRestClient.TuEtwas => Crash beim Konstruktor von TMeinRestClient

Aber:
Frame B -> klick auf Button -> TMeinRestClient.TuEtwas => geht
dann Frame A -> klick auf Button -> TMeinRestClient.TuEtwas => geht auch
TMeinRestClient wird jeweils neu erzeugt.

Ich habe dann die Uses von Frame A und Frame B verglichen. Das einzige, was mit ins Auge gesprungen ist, ist der Eintrag von IdGlobalProtocols in den Uses von Frame B, der in Frame A nicht vorhanden ist.
Aus purer Verzweiflung einfach mal IdGlobalProtocols in die Uses von Frame A gesetzt, und schon ging alles *shrug*

Edit: nevermind, mein Testcase war aus anderen Gründen erfolgreich :D
Problem besteht weiterhin


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:04 Uhr.

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