Hallo Zusammen,
da ich gehört habe, dass VBA in Zukunft eher weniger von AutoCAD unterstützt wird will ich zu .Net umsteigen.
Dazu startete ich folgenden Test:
Zuerst habe ich das AutoCAD 2010 ObjectARX Toolkit runtergeladen.
In Microsoft Visual Basic 2008 Express erstellte ich eine Class Libary Projekt, in das ich nach diesem Beispiel folgenden Code schrieb:
Imports System
Imports System.Runtime.InteropServices
Imports Microsoft.VisualBasic
Imports Autodesk.AutoCAD.Runtime
Imports Autodesk.AutoCAD.ApplicationServices
Imports acadAppl = Autodesk.AutoCAD.ApplicationServices.Application
Public Class HelloWorld
<Autodesk.AutoCAD.Runtime.CommandMethod("HELLO")> Public Sub HelloCommand()
acadAppl.DocumentManager.MdiActiveDocument.Editor.WriteMessage(vbNewLine & "Hello World!" & vbNewLine)
acadAppl.UpdateScreen()
End Sub
End Class
Die Verweise auf die Datein ACDBMGD.DLL und ACMGD.DLL erstellte ich auch.
Bei dem Versuch die HelloWorld.dll bei AutoCAD Civil 2010 mit Hilfe des netload Befehls einzubinden kam folgende Meldung in der Befehlsleiste von AutoCAD:
Assembly kann nicht geladen werden. Fehlerdetails:
System.IO.FileNotFoundException: Die Datei oder Assembly
"file:///C:\working\dotnet\HelloWorld\bin\debug\helloworld.dll" oder eine
Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei
nicht finden.
Dateiname: "file:///C:\working\dotnet\HelloWorld\bin\debug\helloworld.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.
Hab diese Meldung schon gegooglet aber nichts passendes gefunden.
Ich hoffe ihr könnt mir weiterhelfen...
Grüße
Silvan
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP