FastFiber

DLL kan niet geladen worden [OPGELOST]

Gestart door Bassiemeer, do 03 03 2011, 14:35:28

Vorige topic - Volgende topic

Bassiemeer

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.

Bassiemeer

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


Bassiemeer

Opgelost, vb 2008 express ivp 2010 gebruiiken.

sschevers

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

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

groeten

stephan

Bassiemeer

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.

sschevers

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

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

groeten

stephan

Bassiemeer

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?

sschevers

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/ voor cursus data

stephan

Bassiemeer

Hmmz denk niet dat als stagiar een cursus erin zit..