Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Typkonflikt-Fehler bei Migartion Code in VB.NET

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
Im Fokus: CAD Automation & CPQE
Autor Thema:  Typkonflikt-Fehler bei Migartion Code in VB.NET (1790 mal gelesen)
monti0505
Mitglied
Ingenieur


Sehen Sie sich das Profil von monti0505 an!   Senden Sie eine Private Message an monti0505  Schreiben Sie einen Gästebucheintrag für monti0505

Beiträge: 33
Registriert: 16.07.2008

erstellt am: 10. Aug. 2008 14:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo zusammen,

nach der Migration von VB6 Code in VB.NET 2005 Code tritt bei nachfolgendem Code die Fehlermeldung:


Eine Ausnahme (erste Chance) des Typs "System.Runtime.InteropServices.COMException" ist in Microsoft.VisualBasic.dll aufgetreten.
Typkonflikt. (Ausnahme von HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH)).

auf.

Der Code:

Code:

    Dim bret As Boolean
    Dim vInstances As Object

vInstances = swBlockDef.GetInstances()
bret = vInstances(0).Select(True, Nothing)


Den Code habe auseinandergebaut um den Fehler zu finden.
Ursprünglich stand hier nur Call swBlockDef.GetInstances(0).Select(True, Nothing) und darüber die Upgrade_Warnung:

     'UPGRADE_WARNING: Die Standardeigenschaft des Objekts swBlockDef.GetInstances().Select konnte nicht aufgelöst werden. Klicken Sie hier für weitere Informationen: 'ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?keyword="6A50421D-15FE-4896-8A1B-2EC21E9037B2"'

          

Das ganze hat in VB6 funktioniert. Nur im VB.NET kommt dieser Fehler vor. Und das nicht nur bei diesem Code.
Der Fehler ist auch schon bei einer Funktion aufgetaucht, der ein Annotation als ByRef übergeben worden ist. Eine Änderung auf Byval hatte das aber dort gelöst.

Hier weiss ich allerdings nicht was das Problem sein könnte.
Kann mir da jemand weiterhelfen und sagen warum dieser Fehler auftaucht und wie ich das lösen kann?

Gruß

monti

EDIT:

Ich habe das noch weiter auseinander genommen und der Fehler tritt nur bei dem Select auf:

Code:

  Dim pInst as Object
  Dim bret As Boolean
  Dim vInstances As Object

  pInst = vInstances(0)  ' bis hier funktioniert es
  bret = pInst.Select(True, Nothing)



[Diese Nachricht wurde von monti0505 am 11. Aug. 2008 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

mkkk
Mitglied



Sehen Sie sich das Profil von mkkk an!   Senden Sie eine Private Message an mkkk  Schreiben Sie einen Gästebucheintrag für mkkk

Beiträge: 105
Registriert: 04.03.2005

erstellt am: 11. Aug. 2008 13:47    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für monti0505 10 Unities + Antwort hilfreich

Probier doch mal das:

  Dim pInst as SldWorks.SketchBlockInstance
  Dim bret As Boolean
  Dim vInstances As Object

  pInst = CType(vInstances(0), SldWorks.SketchBlockInstance)
  bret = pInst.Select(True, Nothing)

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

monti0505
Mitglied
Ingenieur


Sehen Sie sich das Profil von monti0505 an!   Senden Sie eine Private Message an monti0505  Schreiben Sie einen Gästebucheintrag für monti0505

Beiträge: 33
Registriert: 16.07.2008

erstellt am: 11. Aug. 2008 14:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo,

ja, so bricht das Programm nicht ab 
Ich denke, das VB.NET generell Probleme mit dem Late Binding hat und das das Problem gewesen ist.

Danke.

Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz