VB6 "type mismatch" - Fehler
Ich bin immer folgende Fehler auf den folgenden
IF obj.propery THEN
...
END IF
den code, den ich verwende, ist auf visual source safe und wenn andere Entwickler desselben Projekts wird der code ausgeführt, ohne einen Fehler. Die Eigenschaft ist eigentlich eine Schnur, die ist, wo das problem sein könnte. Wenn ich Debuggen und testen der Eigenschaft, d.h.
?obj.propery = True
keine Fehler geworfen werden, die ist ein bisschen seltsam. Wenn ich platzieren Sie den cursor über das Anwesen, sagt es "True". Ich habe getan, ein wenig von der Suche über die Angelegenheit und fand heraus, dass dies möglicherweise etwas damit zu tun haben, die mit OPTION STRICT aktiviert ist, aber ich habe die gleiche version von dem code der anderen Entwickler und OPTION STRICT aktiviert ist nicht DEAKTIVIERT, es wurde nicht geändert im code. Gibt es irgendwelche anderen Einstellungen, die Einfluss auf die Ausführung von code zur Laufzeit?
- Es gibt keine
Option Strict
in VB 6. Die Suche, die Sie getan haben, hat wahrscheinlich aufgedreht VB.NET-bezogenen Ressourcen. Es ist nicht, äh, möglich, dass die anderen Entwickler VB.NET ist es? - Als was für ein Typ ist 'obj' deklariert?
- obj ist eine benutzerdefinierte Art und Eigenschaft ist ein string-Eigenschaft.
- Meine ursprüngliche Antwort ist anscheinend falsch. Ich kann es jetzt reproduzieren VB 6 Nötigung
String
mit den Werten "wahr"/"True" oder "false"/"False" zu einemBoolean
wenn die Prüfung den Wert mit einer if-Anweisung. Wie belastend, wie das ist, mir scheint es Realität. Du wirst natürlich noch ein compiler-Fehler, wenn der string gesetzt ist, um etwas anderes als diese beiden Werte. Können Sie versuchen, die Schaffung einer Marke neues Projekt, das in Ihre Kopie von VB 6 zu sehen, ob es tut die gleiche Sache, extrahiert aus den größeren code-Basis?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es scheint mir, dass es sein könnte, einen ganz anderen Grund für Ihre Fehler, vor allem, wie Sie den Zugriff auf eine Objekt-Eigenschaft. Ich habe erlebt diese Fehlermeldung, wenn ich habe, aus irgendeinem Grund, wurde dem Hinweis auf eine andere DLL, die registriert sind. Finden Sie mit VB, dass es registriert eine DLL "on the fly" wenn du es baust, so dass du Zugriff auf den code irgendwo, dass Sie nicht erwarten. Dies kann nicht das problem sein, in deinem Fall aber ist es einen Besuch Wert.
Wurde dies nichts zu tun mit VB6, es hatte damit zu tun, mit dem XP-Modus und mit meinem Benutzer-account aus einer anderen Domäne im Gegensatz zu XPMUser. Wenn ich XPMUser die Anwendung ausgeführt wird, dies ist sehr seltsam und ich bin nicht sicher, warum das so ist. Wenn jemand den Grund, warum ich lieben würde, zu hören.
So sind Sie sicher, dass das nicht bei einem boolean als Vrai?
Ich würde geneigt sein, zu mehr explizit in IF-Bedingung
ABER
wäre es klug, zu überprüfen, dass obj nicht null ist ersten, bevor Sie beginnen, den Zugriff auf Ihre Eigenschaften....