none
VB.NET - DLL einbinden RRS feed

  • Frage

  • Servus,
    bin neu hier und habe auch direkt ein für mich unlösbares Problem. Ich habe zwar das Internet durchforstet aber nichts gescheites gefunden. Man muss auch dazu sagen, das ich zum ersten mal mit DLL´s arbeite.

    Folgendes, ich habe über "Verweis hinzufügen" eine DLL eingefügt. Diese dient dazu Messgeräte zu steuern. Funktioniert soweit so gut auf dem Entwicklungsrechner. Veröffentliche ich das Programm und installiere es auf einem anderen Rechner, kommt direkt die Meldung <Programmname> hat ein Problem festgestellt und muss beendet werden. (System.Invalidoperationexception)
    Unter den Projekteigenschaften - Veröffentlichen, habe ich auch die entsprechende DLL (Ivi.Visa.Interop.dll) auch auf Einschließen stehen, aber es funktioniert trotzdem nicht.

    Hier mein Code

    Public Class frmChamberCControl
    
        Dim IOMGr As New Ivi.Visa.Interop.ResourceManager
        Dim Instrument As New Ivi.Visa.Interop.FormattedIO488
    
        Private Sub btnInitialize_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInitialize.Click
    
            Try
                Instrument.IO = IOMGr.Open("GPIB0::28") 'GPIB-Adresse
                Instrument.WriteString("*rst") 'reset
                Instrument.WriteString("id?")
                lblAntwortWerBinIch.Text = Instrument.ReadString
                Dim test As Stringa
                test = "ID HP6032A"
    
                If lblAntwortWerBinIch.Text.StartsWith("ID HP6032A") Then
                    txtVoltage.Enabled = True
                    txtCurrent.Enabled = True
                    btnSet.Enabled = True
                End If
    
            Catch ex As Exception
    
            End Try
    
        End Sub
    
        Private Sub btnSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSet.Click
    
            Try
                Instrument.WriteString("VSET " & txtVoltage.Text.ToString)
                Instrument.WriteString("ISET " & txtCurrent.Text.ToString)
    
                Timer1.Start()
            Catch ex As Exception
    
            End Try
    
    
    
        End Sub
    
    
    End Class
    


    Kann mir hier jemand helfen? Danke im Vorraus.
    Freitag, 15. Mai 2009 05:26

Antworten

  • Hallo JayJay82,

    die Ivi.Visa.Interop.dll sorgt sehr augenscheinlich dafür, dass Du von .NET aus COM-Server verwenden kannst, ist also eine reine Technologiebrücke. Die zu verwendende Technologie selber ist da noch nicht mit drin. Wenn die auf dem Zielrechner fehlt, wäre das schonmal eine erste Fehlerursache. Ob und wie Du die jeweils mit Deiner Anwendung verbreiten kannst, ist ganz individuell zu betrachten, aus technischer wie auch aus rechtlicher Sicht.

    Falls Du von "COM Interop" noch nichts gehört hast, gibt es natürlich massenweise Informationen dazu (z.B. über den angegebenen Link in die MSDN Library).

    In Deinem Fall wäre die PIA-Dokumentation der IVI Foundation ebenfalls sinnvoll, weil sie Dich direkt betrifft: http://www.ivifoundation.org/downloads/Architecture%20Specifications/IVI-3%2014_Primary%20Interop%20Assembly-2008-11-17.doc

    Viel Erfolg!
    Sonntag, 17. Mai 2009 10:49