Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  VBasic / vb.net / vbs / wsh
  VB 2010 Express: Fehlermeldung beim Laden einer DLL

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
Autor Thema:  VB 2010 Express: Fehlermeldung beim Laden einer DLL (4958 mal gelesen)
WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

AutoCAD 2021 64-bit
Windows 10 64-bit Home Premium
AMD Phenom II X6 1055T, 2,8GHz, 8GB RAM

erstellt am: 21. Dez. 2010 17:04    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,

ich habe mit VB 2010 das allseits bekannte Hello World aus der AutoCAD 2010 .NET API Training Labs-VB versucht mit dem Befehl NETLOAD in AutoCAD 2011 zu laden und erhalte permanent eine Fehlermeldung. Auch mit AutoCAD 2010 erhalte ich diese Meldung. Vielleicht kann mir jemand einen Tipp geben.
Vielen Dank vorab.

Gruß
Wolfi

Vorgehensweise:
VB 2011 Express -> Neues Projekt erstellen -> Klassenbibliothek -> AcDbMgd.dll und Acmgd.dll von AutoCAD 2011 geladen -> Lokale Kopie auf FALSE gesetzt -> codieren ->Debuggen -> LAb1 erstellen -> AutoCAD 2011 aufrufen -> NETLOAD eingeben und zu C:\Dokumente und Einstellungen\XXXXXXXXXX\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\Lab1\bin\Release\Lab1.dll navigieren und Datei Lab1.dll auswählen -> OK

Hier der Code:

Code:
Imports Autodesk.AutoCAD.ApplicationServices
Imports Autodesk.AutoCAD.EditorInput
Imports Autodesk.AutoCAD.Runtime

Public Class Class1
    <CommandMethod("HelloWorld")> _
    Public Sub HelloWorld()
        Dim ed As Editor = Application.DocumentManager.MdiActiveDocument.Editor
        ed.WriteMessage("Hello World")
    End Sub
End Class


und hier die Fehlermeldung:

Befehl: netload
Assembly kann nicht geladen werden. Fehlerdetails:
System.BadImageFormatException: Die Datei oder Assembly "file:///C:\Dokumente und Einstellungen\XXXXXXXXXX\Lokale
Einstellungen\Anwendungsdaten\Temporary Projects\Lab1\bin\Release\Lab1.dll"
oder eine Abhängigkeit davon wurde nicht gefunden. Die Assembly wird von einer
Laufzeit erstellt, die aktueller als die derzeit geladene Laufzeit ist, und
kann nicht geladen werden.
Dateiname: "file:///C:\Dokumente und Einstellungen\XXXXXXXXXX\Lokale
Einstellungen\Anwendungsdaten\Temporary Projects\Lab1\bin\Release\Lab1.dll"
  bei System.Reflection.Assembly._nLoad(AssemblyName fileName, String
codeBase, Evidence assemblySecurity, Assembly locationHint, StackCrawlMark&
stackMark, Boolean throwOnFileNotFound, Boolean forIntrospection)
  bei System.Reflection.Assembly.nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
  bei System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  bei System.Reflection.Assembly.InternalLoadFrom(String assemblyFile,
Evidence securityEvidence, Byte[] hashValue, AssemblyHashAlgorithm
hashAlgorithm, Boolean forIntrospection, StackCrawlMark& stackMark)
  bei System.Reflection.Assembly.LoadFrom(String assemblyFile)
  bei Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
  bei loadmgd()
WRN: Protokollierung der Assemblybindung ist AUS.
Sie können die Protokollierung der Assemblybindungsfehler aktivieren, indem Sie
den Registrierungswert [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) auf 1
festlegen.
Hinweis: Die Protokollierung der Assemblybindungsfehler führt zu einer gewissen
Leistungseinbuße.
Sie können dieses Feature deaktivieren, indem Sie den Registrierungswert
[HKLM\Software\Microsoft\Fusion!EnableLog] entfernen.

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


Ex-Mitglied

erstellt am: 21. Dez. 2010 17:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

AutoCAD 2010 basiert auf Framework 3.5, ohne Änderungen erzeugt VS2010 eine DLL, die jedoch auf Framework 4.0 aufsetzt.
Korrigiere diese Einstellung (Projekteigenschaften) mal auf 3.5 plus nachfolgend neu kompilieren (wenn Du nicht allzuviel im AutoCAD Config-Einträge umschreiben willst und damit ev. andere Apps nicht mehr gehen).

HTH, - alfred -

------------------
www.hollaus.at

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 22. Dez. 2010 07:32    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 Alfred,

vielen Dank für Deine schnelle und kompetente Hilfe.
Ich habe nach Deiner Anweisung das Framework in den Projekteigenschaften von 4.0 auf 3.5 umgestellt und alles funktioniert wie es soll.
Vielen Dank!

Gruß

Wolfi

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

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

AutoCAD 2021 64-bit
Windows 10 64-bit Home Premium
AMD Phenom II X6 1055T, 2,8GHz, 8GB RAM

erstellt am: 22. Dez. 2010 08:00    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 Alfred,

ich hätte noch eine grundlegende Frage an den Fachmann.

Ich suche zur Zeit einen Weg meine VB6 Skripte nach VB .NET umzustellen.
Bisher habe ich mit einem VB6 Programm AutoCAD gestartet, danach eine DWG aufgerufen und in dieser DWG z.B. Attribute aktualisiert (Zeichnungsrahmen), danach die nächste DWG aufgerufen und bearbeitet usw.
Wenn ich das richtig verstanden habe, geht das mit VB 2010 nur noch über Klassenbibliotheken, die ich in AutoCAD wie früher mit VBALOAD VBA-Skripte lade und ausführe. Also ich starte mit dem Programm AutoCAD, lade mit NETLOAD meine DLL und rufe mit dieser eine DWG auf, bearbeite diese und rufe danach die nächste auf usw.
Ich habe das auch schon einmal alles wie in VB6 mit VB 2010 probiert, mit dem Ergebnis, dass ich zwar AutoCAD aufrufen konnte, aber nach dem Start von Autocad die DWG nicht geladen wurde. Beispiel siehe hier:  http://ww3.cad.de/foren/ubb/Forum110/HTML/000767.shtml
Für eine Antwort bedanke ich mich schon einmal vorab.

Gruß

Wolfi


[Diese Nachricht wurde von WolfgangSCH am 22. Dez. 2010 editiert.]

[Diese Nachricht wurde von WolfgangSCH am 22. Dez. 2010 editiert.]

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


Ex-Mitglied

erstellt am: 22. Dez. 2010 08:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Wenn ich das richtig verstanden habe, geht das mit VB 2010 nur noch über Klassenbibliotheken

Nein, stimmt so nicht (ganz).

a) Handling über COM:
Du kannst AutoCAD nach wie vor von einer externen EXE aus steuern, dann stehen Dir jedoch nur die COM-Zugriffe auf AutoCAD zur Verfügung, diese sind aber brav und ordentlich vorhanden.
Einziges Handicap bei dieser Variante, dass Deine EXE und die AutoCAD-EXE in verschiedenen Speicherbereichen laufen (Schlagwort 'OutOfProcess') und der Datenaustausch darüber heftig langsam ist, also für zeitkritische Anwendungen unbrauchbar.

b) Geteilte Applikation:
Die andere Variante ist, dass Du eine EXE hast (erstes dotNET-EXE Projekt), diese zuerst AutoCAD startet, dann Deine dotNET-DLL (getrenntes zweites dotNET-DLL-Projekt) ins AutoCAD lädt und startet.
Deine EXE ist dann nurmehr für AutoCAD-Prozessstart, Applikationsstart und AutoCAD-Prozessende-Handling verantwortlich (ev. auch für Fehlerhandling, wenn der acad.exe-Prozess stirbt).
Deine DLL macht dann das gesamt Handling in der Zeichnung/den Zeichnungen.

Wenn Du möchtest, dass ich hinschau, lade die Solution/das Projekt mit Deinem EXE (und der Korrektur lt. meinem letzten Hinweis >>>hier<<<) gezipt hier hoch, dann guck ich, was auf die schnelle getan werden kann.

- alfred -

------------------
www.hollaus.at

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 22. Dez. 2010 09:36    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 Alfred,

vielen Dank für Deine schnelle und kompetente Antwort.
Wenn das Handling über COM wesentlich langsamer ist als über die geteilten Applikationen, werde ich meine Skripte zukünftig über diese geteilten Applikationen realisieren.
Vielen Dank für Dein Angebot einmal über mein Projekt zu schauen, aber das hat sich dann hiermit erledigt, da ich diesen Weg nicht mehr verfolgen werde.

Gruß
Wolfi

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


Ex-Mitglied

erstellt am: 22. Dez. 2010 09:46    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Wenn das Handling über COM wesentlich langsamer ist

Nun, langsamer als das, was Du bisher hattest, ist es nicht. Denn wenn ich richtig verstanden habe, hast Du ja auch eine externe EXE gehabt und über COM das AutoCAD gesteuert; war ja die gleiche Struktur.


>> zukünftig über diese geteilten Applikationen realisieren

Diesen Weg hätte ich eigentlich nur mitgelistet, weil's halt geht, aber keinesfalls weil es der beste Weg ist.
Natürlich mag es Strukturen geben, die das erforderlich machen, nur ist das Zusammenspiel von 2 VS-Projekten (eines rund um AutoCAD, das andere mitten drin) nicht gerade leicht zu debuggen. Ich würde diesen Weg nur wählen, wenn es nicht anders geht!


Und last-but-not-least: Schau Dir die Geschwindigkeitsdifferenz im Verhältnis zu den anderen Teilen der App an!
Das Laden der Zeichnung kostet Zeit am Netzwerk, das nachfolgende Speichern der Zeichnung kostet Zeit am Netzwerk, .... wenn Du jetzt gerade mal bei einem Schriftkopf ein paar Attribute änderst und das das ganze Handling an der Zeichnung ist, dann macht das mal ein paar Prozent von dem aus, was an Zeit durch Laden und Speichern der DWG draufgeht, da kannst Du ruhig mit COM arbeiten.
Kritisch wird es nur, wenn Du eine Masse von Zeichnungselementen zu bearbeiten hast, dann ist der Faktor aber auch ein anderer, denn dann braucht Deine App deutlich mehr Zeit als Laden/Speichern.

Nicht gleich alles wegschmeissen bitte! Erst vergleichen und nicht unterschätzen, was Debuggen plus Projektpflege von einem vs. zwei Projekten bedeutet.

- alfred -

------------------
www.hollaus.at

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 22. Dez. 2010 11: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


StarteAutoCAD.zip

 
Hallo Alfred,

wenn das COM Handling nicht langsamer ist, als das was ich bisher mit VB6 gemacht habe, wäre es ok.
Daher möchte ich Dein Angebot doch annehmen, dass Du einmal über den Code mit dem COM Handling schaust, wenn Du Zeit hast.
Vielen Dank vorab.

Gruß
Wolfi

[Diese Nachricht wurde von WolfgangSCH am 22. Dez. 2010 editiert.]

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


Ex-Mitglied

erstellt am: 22. Dez. 2010 14:36    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

hier hast Du Deinen Start, die SLN zu retournieren macht leider keinen Sinn, da Du mir nicht alle Daten übermittelt hast, damit war es nicht kompilierbar.

Zu den Projekteinstellungen allgemein:
- stelle unter 'Kompilieren' nicht vorgabemäßig Option Strict auf OFF ==> damit entgehen Dir bereits beim Schreiben Deines Programms eine Menge Ungereimtheiten.
- arbeite während der Entwicklung nicht im Modus 'Release' ==> denn damit kannst Du keine Haltepunkte sezten, bekommst bei Abbrüchen keine Position des Fehlers, ....


Code:
   Public Function StartAutoCADSession() As Interop.AcadApplication
      Dim tRetVal As Interop.AcadApplication = Nothing
      Dim tErrMsg As String = ""
      Const tRetriesMax As Integer = 5
      Const tRetryWaitTime As Integer = 2 'sekunden
      Const AcadApp_ActiveXServerName as String = "AutoCAD.Application.18"

      Try
         'Überprüfe, ob AutoCAD schon geladen ist
         tRetVal = CType(GetObject(, AcadApp_ActiveXServerName), Interop.AcadApplication)
      Catch ex As Exception
         'damit ist zumindest kein gestartetes AutoCAD erkennbar ==> also ein neues starten
         'Fehlermeldung müssen wir hier nicht zwischenspeichern
      End Try

      If tRetVal Is Nothing Then
         'dann versuchen wir, eine neue AutoCAD-Instanz zu starten
         'nachdem 'CreateObject' (und VS2010) auf gewissen Maschinen ein TimeOut eingestellt hat, das zu kurz ist, um AutoCAD in der
         '  Zeit starten zu können, versuchen wir: einmal zu starten, und dann nachträglich erst zu verbinden
         Try
            Dim tObj As Object = CreateObject(AcadApp_ActiveXServerName)   'das ist mal anstarten
         Catch ex As Exception
            'geht scheinbar auch nicht
            tErrMsg = ex.Message

            'jetzt machen wir mal Pause, lassen das AutoCAD weiter starten und probieren in Abständen, die ActiveX-Verbindung zu bekommen
            For i As Integer = 1 To tRetriesMax
               System.Threading.Thread.Sleep(tRetryWaitTime * 1000)
               Try
                  tRetVal = CType(GetObject(, AcadApp_ActiveXServerName), Interop.AcadApplication)
               Catch ex2 As Exception
               End Try
               If tRetVal IsNot Nothing Then Exit For
            Next
         End Try
      End If

      If tRetVal Is Nothing Then
         Call MsgBox("AutoCAD konnte nicht gestartet werden (Message: '" & tErrMsg & "')")
      Else
         tRetVal.Visible = True
      End If

      Return tRetVal
   End Function



Hoffe der Code ist ausreichend kommentiert, - alfred -

------------------
www.hollaus.at

[Diese Nachricht wurde von a.n. am 22. Dez. 2010 editiert.]

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 23. Dez. 2010 10:09    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 Alfred,

vielen Dank für den Code.
Könntest Du mir noch einen Tipp geben wie ich "Interop.AcadApplication" und "AcadApp_ActiveXServerName" definieren kann?

Wie gesagt bin ich Umsteiger von VB6 nach VB .NET und habe mich noch nicht sehr tief in die neue Materie eingearbeitet. Der Grund hierfür ist, dass ich VB .NET hauptsächlich für den Umgang mit AutoCAD benötige. Und Voraussetzung ist, dass ich mit VB .NET AutoCAD einwandfrei starten, DWG's laden und verarbeiten kann. Dies ist momentan noch nicht der Fall.

Das dies in VB .NET so umständlich geht, hat mich ein wenig enttäuscht. Mit VB6 stelle ich ganz einfach eine Instanz zu AutoCAD her, rufe meine DWG's auf und verarbeite diese extern. Ich musste hier weder Pausen einbauen, um das Programm zu verzögern, noch musste ich DWG-Datenbanken öffnen, speichern und schließen. Auch die Einarbeitungszeit, soweit ich dies jetzt schon abschätzen kann, war wesentlich kürzer.

Wenn ich es nicht hinbekommen sollte, AutoCAD einwandfrei extern zu starten, werde ich für diese Projekte weiterhin das gute, alte VB6 benutzen.

Gruß
Wolfgang

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


Ex-Mitglied

erstellt am: 23. Dez. 2010 10:28    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

>> Könntest Du mir noch einen Tipp geben wie ich "Interop.AcadApplication" und "AcadApp_ActiveXServerName" definieren kann?

Interop.Application wird dann als gültiger Namespace-Eintrag erkannt, wenn Du am oberen Ende Deines Code-File folgendes definierst:
Imports Autodesk.AutoCAD

Die Variable 'AcadApp_ActiveXServerName' ist (zugegeben per nachtträglicher Modifikation am Abend) bereits in obiger Antwort von mir im Code enthalten.
Const AcadApp_ActiveXServerName as String = "AutoCAD.Application.18"


>> Das dies in VB .NET so umständlich geht, hat mich ein wenig enttäuscht. Mit VB6 stelle ich ganz einfach
>> eine Instanz zu AutoCAD her, rufe meine DWG's auf und verarbeite diese extern

Nun es ist in VB.NET (für Deinen Fall mit externer EXE) genauso wie VB6, nur eben durch Framework ein wenig anders: Gewöhnung - aber nicht schwieriger oder komplizierter! 


>> Ich musste hier weder Pausen einbauen, um das Programm zu verzögern

Das war auch für mich neu, keine Ahnung, ob das jetzt durch VS2010 oder Framework 4 so auftritt (ich arbeite zum einen nicht mit externen EXE's, die AutoCAD steuern, zum anderen mit VS2008).
Ich geb Dir insofern recht, eigentlich sollte es nicht so sein. Nur deswegen sind wir ja Programmierer geworden, damit wir Symptome erkennen und den Code entsprechend dieser Erkenntnisse (und die Anforderungen) aufbereiten. 


>> [...] noch musste ich DWG-Datenbanken öffnen, speichern und schließen

Dieser Satz(teil) gibt mir zu denken. Wenn Du keine Zeichnungen öffnest, wozu brauchst Du dann das AutoCAD 
Wäre ja so als hätte ich ein Auto und noch nie Räder gebraucht.


>> Wenn ich es nicht hinbekommen sollte, AutoCAD einwandfrei extern zu starten,
>> werde ich für diese Projekte weiterhin das gute, alte VB6 benutzen

Solange Du nur über COM arbeitest, ist das auch vollkommen egal, ob Du den AutoCAD-ActiveX-Server von VB6 oder von dotNET aus steuerst.
Der Unterschied wird wohl darin liegen, was in Deiner EXE sich sonst noch so abspielt. Greifst Du z.B. auf Datenbanken oder hast Du Formulare zu erstellen, dann wird Dir nach einiger Zeit mit dotNET klar, dass VB6 im Verhältnis dazu ein Verbrechen war. 


- alfred -

------------------
www.hollaus.at

WolfgangSCH
Mitglied



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

Beiträge: 145
Registriert: 01.10.2002

erstellt am: 23. Dez. 2010 11:22    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 Alfred,

vielen Dank für Deine Hilfe.
Ich werde die Informationen, welche ich von Dir erhalten habe einmal detailiert auswerten und mit dem Code in die eine und andere Richtung noch etwas experimentieren, bis ich zu einem für mich befriedigenden Ergebnis gekommen bin.

Zitat:
Dieser Satz(teil) gibt mir zu denken...

Mit diesem Satz meinte ich dass man in VB .Net die DWG-Datenbank erst öffnen muss, dann darin Objekte hinzufügen, ändern oder löschen kann und danach die Datenbank wieder schließen (aktualisieren) muss (Stichwort Transaction), was in VB6 alles im Hintergrund passierte.

Doch eines würde mich noch interessieren: Warum arbeitest Du mit VS2008 und nicht mit der aktuellen VS2010?

Ich wünsche Dir eine geruhsame Weihnachtszeit und einen guten Rutsch ins neue Jahr!

Gruß

Wolfi

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


Ex-Mitglied

erstellt am: 23. Dez. 2010 11:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

auf TransActions kannst Du getrost verzichten, denn das spielt's nicht mit COM (nun, nicht ganz korrekt, aber von Grundsatz her), Du kannst genauso AcadDoc.ModelSpace.AddLine verwenden und brauchst dazu keine TransAction.
TransActions brauchst Du nur, wenn Du auf das managed-Modell von AutoCAD zugreifst (dann aber mit NETLOAD arbeitest und eine DLL hast).


>> Doch eines würde mich noch interessieren: Warum arbeitest Du mit VS2008 und nicht mit der aktuellen VS2010?

Weil bis AutoCAD 2011 die VS2008-Version unterstützt ist. VS2010 wird erst bei der ... AutoCAD-Version von Autodesk als Entwicklungsplattform für AutoCAD-Applikationen empfohlen/supportet.
Ich sehe auch nicht die großartigen Vorteile von VS2010 (für AutoCAD-Entwicklung wohlgemerkt, andere Applikationsarten schon).

- alfred -

------------------
www.hollaus.at

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)2023 CAD.de | Impressum | Datenschutz