CADsite forum

AutoCAD => Dot Net API => Topic gestart door: Bassiemeer op do 03 03 2011, 14:35:28

Titel: DLL kan niet geladen worden [OPGELOST]
Bericht door: Bassiemeer op do 03 03 2011, 14:35:28
Hallo,

Ik ben vandaag maar eens aan de slag gegaan met VB.Net.
Ik heb volgens de AutoCAD 2011 bijbel vanaf pagina 1300 tot 14.16 alles doorlopen, mar AutoCAD komt met de volgende melding als ik het DLL bestand wil laden met NETLOAD.
Ik heb trouwens Visual Basic 2010 Exspress gebruikt om de form te maken.

Command: netload
Cannot load assembly. Error details: System.BadImageFormatException: Could not
load file or assembly 'file:///C:\Users\--------\Documents\VB
oefeningen\Cursus\Cursus\bin\Debug\Cursus.dll' or one of its dependencies. An
attempt was made to load a program with an incorrect format.
File name: 'file:///C:\Users\--------\Documents\VB
oefeningen\Cursus\Cursus\bin\Debug\Cursus.dll'
  at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark,
Boolean throwOnFileNotFound, Boolean forIntrospection)
  at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
  at System.Reflection.Assembly.LoadFrom(String assemblyFile)
  at Autodesk.AutoCAD.Runtime.ExtensionLoader.Load(String fileName)
  at loadmgd()
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure
logging.
To turn this feature off, remove the registry value
[HKLM\Software\Microsoft\Fusion!EnableLog].

Ik heb de compile op .NET 3.0, 3.5 en 4.0 geprobeerd.
Titel: Re:DLL kan niet geladen worden
Bericht door: Bassiemeer op do 03 03 2011, 14:41:03
Ik heb wel deze 2 warnings

Possible problem detected while building assembly 'Cursus': Referenced assembly 'acdbmgd.dll' targets a different processor

Possible problem detected while building assembly 'Cursus': Referenced assembly 'acmgd.dll' targets a different processor

Titel: Re:DLL kan niet geladen worden
Bericht door: Bassiemeer op vr 04 03 2011, 09:30:44
Opgelost, vb 2008 express ivp 2010 gebruiiken.
Titel: Re:DLL kan niet geladen worden [OPGELOST]
Bericht door: sschevers op vr 04 03 2011, 09:50:59
De versie van Visual studio zou niet uit moeten maken.
Let er op dat je bij de acdbmgd.dll en acmdg.dll de optie copy local op off zet.

en check bijgaande link even. Daar staan ook nog wat issues met vs2010
http://through-the-interface.typepad.com/through_the_interface/2010/04/hitting-breakpoints-in-net-class-libraries-while-debugging-with-visual-studio-2010.html (http://through-the-interface.typepad.com/through_the_interface/2010/04/hitting-breakpoints-in-net-class-libraries-while-debugging-with-visual-studio-2010.html)

en zie deze post even
http://www.cadsite.be/smf/index.php?topic=4222.0 (http://www.cadsite.be/smf/index.php?topic=4222.0)

groeten

stephan
Titel: Re:DLL kan niet geladen worden [OPGELOST]
Bericht door: Bassiemeer op vr 04 03 2011, 11:46:56
Ik heb nu een palette gemaakt waarbij ik een block invoeg met de volgende code:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim aanzicht As Long
        Dim Zijaanzicht As Long
        Dim Vooraanzicht As Long
        Dim ZA As Long
        Dim VA As Long

        Select Case Me.ComboBox2.SelectedIndex
            Case Zijaanzicht
                aanzicht = ZA
            Case Vooraanzicht
                aanzicht = VA
        End Select

        Dim onderwagen = "(command ""insert"" ""LR_OW_aanzicht"" ""0,0"" 1 1 0) "
        Dim doc = Application.DocumentManager.MdiActiveDocument
        doc.SendStringToExecute(onderwagen, False, False, False)

    End Sub

Alleen nu moet bij aanzicht in deze regel Dim onderwagen = "(command ""insert"" ""LR_OW_aanzicht"" ""0,0"" 1 1 0) "
ZA of VA komen, maar die krijg ik niet variabel.
Titel: Re:DLL kan niet geladen worden [OPGELOST]
Bericht door: sschevers op vr 04 03 2011, 13:42:39
SendStringToExecute heb je niet nodig.
Zie bijgaande link hoe je blocken in je tekening voegt via VB.NET
http://forums.autodesk.com/t5/NET/Insert-block-from-disk/m-p/1932281 (http://forums.autodesk.com/t5/NET/Insert-block-from-disk/m-p/1932281)

Het is even pittig maar dan kun je verschrikkelijk mooie applicaties maken

groeten

stephan
Titel: Re:DLL kan niet geladen worden [OPGELOST]
Bericht door: Bassiemeer op vr 04 03 2011, 15:16:59
Het kan aan mij liggen, maar ik snap daar geen hout van. Wat ik nu probeer is het volgende:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        If ComboBox2.SelectedItem = "Vooraanzicht" And ComboBox1.SelectedItem = "LR1750" Then
            Dim onderwagen = "(command ""insert"" ""LR1750_OW_VA"" ""0,0"" 1 1 0) "
            Dim bovenwagen = "(command ""insert"" ""LR1750_BW_ZA"" ""@0,2130.1147"" 1 1 0) "
            Dim doc = Application.DocumentManager.MdiActiveDocument
            doc.SendStringToExecute(onderwagen, False, False, False)
            doc.SendStringToExecute(bovenwagen, False, False, False)
        End If

        If ComboBox2.SelectedItem = "Zijaanzicht" And ComboBox1.SelectedItem = "LR1750" Then
            Dim onderwagen = "(command ""insert"" ""LR1750_OW_ZA"" ""0,0"" 1 1 0) "
            Dim bovenwagen = "(command ""insert"" ""LR1750_BW_ZA"" ""@0,2130.1147"" 1 1 0) "
            Dim doc = Application.DocumentManager.MdiActiveDocument
            doc.SendStringToExecute(onderwagen, False, False, False)
            doc.SendStringToExecute(bovenwagen, False, False, False)
        End If

    End Sub


Het verveldende is dat dit mega groot wordt achter 1 knop, achter ComboBox1 gaan een stuk of 39 opties vallen, en de combobox2 heeft 2 opties, en combobox3 gaat ook +/- 10 opties moeten krijgen die afhankelijk zijn van combobox1. En hierbij moet ook de inserthoek een berekening meekrijgen, en ik krijg dingen tussen " " niet variabel.

(ps vandaag begonnen met VB, nog nooit eerder iets gedaan wat hier op lijkt)

Iemand een suggestie of een begrijpbaar voorbeeld en VB.net en geen C# oid?
Titel: Re:DLL kan niet geladen worden [OPGELOST]
Bericht door: sschevers op vr 04 03 2011, 15:21:27
Bassiemeer

Het voorbeeld is VB.NET.
En zo moet je blocken in voegen met de Dot Net api in autocad. Mooier kan ik het niet maken.
Misschien een idee om cursus te gaan volgen bij Ronald Boeklagen in Nijmegen.

Zie http://www.cadcollege.nl/ (http://www.cadcollege.nl/) voor cursus data

stephan
Titel: Re:DLL kan niet geladen worden [OPGELOST]
Bericht door: Bassiemeer op vr 04 03 2011, 15:29:08
Hmmz denk niet dat als stagiar een cursus erin zit..