| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY WIRD VON NVIDIA ZUM HÄNDLER DES JAHRES GEWÄHLT, eine Pressemitteilung
|
Autor
|
Thema: Problem mit FileLocations-Objekt (782 mal gelesen)
|
Manfred Zirk Mitglied
Beiträge: 513 Registriert: 01.11.2002 IV2012 WIN 7 x64 SP1
|
erstellt am: 01. Nov. 2008 16:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Leute, ich möchte aus dem FileLocations-Objekt die Namen und Pfade der Bibliotheken erhalten. Leider ruft der Aufruf der Mehode .Libraries bei mir einen Laufzeitfehler hervor. Code:
Shared Function DocumentStoredInLibary(ByVal oDoc As Inventor.Document) As String Try Dim oFileLocations As Inventor.FileLocations Dim asLibariesNames As System.Array = Nothing Dim asLibariesPaths As System.Array = Nothing Dim numberOfLibraries As Integer = 0 ' Liste der Bibliotheken ermitteln. oFileLocations = My.Application.Inventor.GeneralSettings.oInventor.FileLocations ' ##### bis hier ist alles ok, das oFileLocations-Objekt enthält auch Daten ' ##### Beim Aufruf von .Libaries kommt dann die Fehlermeldung: ' ##### Err.Number = 91 Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt Call oFileLocations.Libraries(numberOfLibraries, asLibariesNames, asLibariesPaths) return "test" Catch ex As Exception MessageBoxCustom.ShowErrorMessage(ex, Nothing) Return Nothing End Try End Function
Das Beispiel in der API-Hilfe ist genauso aufgebaut. Jedoch musste ich die Arraydeklaration ändern, da bei OPTION STRICT ein Typkonflikt vorliegt. Auch der Zählerparameter ist in der API als Long angeben, ist aber Integer. Die Parameter des Subs .Libraries werden byRef übergeben. Mir ist nicht klar, was an dem Code falsch sein soll. Vielleicht hat ja jemand eine Tip für mich, was da falsch läuft.
Grüße Manfred
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
daywa1k3r Moderator Softwareentwickler
Beiträge: 3497 Registriert: 01.08.2002 Desktop: 3.3GHz;8GB;SSD OCZ Vertex 3;Gainward Phantom GTX570 Laptop: Alienware m17x Win7, Inventor2012
|
erstellt am: 01. Nov. 2008 17:31 <-- editieren / zitieren --> Unities abgeben: Nur für Manfred Zirk
|
Manfred Zirk Mitglied
Beiträge: 513 Registriert: 01.11.2002 IV2012 WIN 7 x64 SP1
|
erstellt am: 09. Nov. 2008 00:33 <-- editieren / zitieren --> Unities abgeben:
Hallo Igor, Danke für den Hinweis. Genau daran liegt es. Die Methode erwartet ein Array mit Datenfeldern vom Typ "String". Das Array kann man immerhin auf 0 Einträge voreinstellen. Und so funktioniert es dann: Code:
Shared Function DocumentStoredInLibary(ByVal oDoc As Inventor.Document) As String Try Dim oFileLocations As Inventor.FileLocations Dim asLibariesNames As System.Array = System.Array.CreateInstance(GetType(String), 0) Dim asLibariesPaths As System.Array = System.Array.CreateInstance(GetType(String), 0) Dim numberOfLibraries As Integer ' Liste der Bibliotheken ermitteln. oFileLocations = oDoc.Parent.FileLocations Call oFileLocations.Libraries(numberOfLibraries, asLibariesNames, asLibariesPaths) Return Nothing Catch ex As System.Exception MessageBoxes.ShowErrorMessage(ex, Nothing) Return Nothing End Try End Function
Grüße Manfred
[Diese Nachricht wurde von Manfred Zirk am 09. Nov. 2008 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|