vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

ActiveX-Programmierung
DLL aufrufen 
Autor: Friedrich
Datum: 12.04.02 01:28

Hallo
ich habe Probleme mit meiner ersten ActiveX-Dll
die DLL kann ich ohne Fehlermeldung erstellen
nur wenn ich die Standart.EXE starte kommt die
Fehlermeldung
Laufzeitfehler 91
Objektvariable oder With-Blockvariable nicht festgelegt
Der Fehler liegt warscheinlich in der DLL wo ich ein
Formloses Steuerelement eingefügt habe ( MsComm )

Lösche ich in der DLL alle Aufrufe die sich auf MsComm beziehen
kann ich aus der Standart.EXE die DLL ohne Fehler aufrufen.

Bitte wer kann mir bei diesen Problem helfen
Die Dateien können auch als ZIP.Datei von meiner HP unter
www.urlaubscam.de.vu/test runtergeladen werden.

vielen Dank
Friedrich

----------------- Standart.EXE ---------------

Private Sub Form_Load()
Dim obj As Application
Dim wert As String
Dim Com As String
Dim A As String
Com = "1"
A = "a0"
wert = obj.M232(Com, A) '<-- Fehlermeldung
Debug.Print wert
End Sub


------------------ Activex-DLL -----------------

Public Function M232(Com As String, A As String) As String
'MsCom OCX einbinden
Dim MsCom1 As MSComm 'liegt hier der Fehler ?
With MsCom1
' COM einsetzen.
.CommPort = 1
' 24000 Baud, keine Parität, 8 Datenbits und 0 Stopbit
.Settings = "2400,n,8"
' Steuerelement anweisen, daß es den gesamten
' Pufferinhalt lesen soll, wenn die Input-Eigenschaft
' verwendet wird.
.InputLen = 0
' _Anschluß öffnen.
.PortOpen = True
End With

MsCom1.Output = Chr$(1) 'BefehlsAnfang senden
For i = 1 To Len(A)
MsCom1.Output = Mid$(A, i, 1) 'Befehl ausgeben
Next i
MsCom1.Output = Chr$(13) 'BefehlsEnde senden

'Zeizverzögerung 100ms
Start = Timer ' Anfangszeit setzen.
Do While Timer < Start + 0.1
DoEvents ' Steuerung an andere Prozesse abgeben.
Loop
Ende = Timer ' Ende festlegen.

'wenn "a" oder "d" Wandlerwert abrufen
If Left(A, 1) = "a" Then
WertKanal$ = MsCom1.Input 'Antwort lesen
'Debug.Print "Wert= "; Left(WertKanal$, 3) 'Antwort lesen
M232 = Left(WertKanal$, 3) 'übergabe der Variable
ElseIf Left(A, 1) = "d" Then
WertKanal$ = MsCom1.Input 'Antwort lesen
'Debug.Print "Wert= "; Left(WertKanal$, 1) 'Antwort lesen
M232 = Left(WertKanal$, 1) 'übergabe der variable
End If

'Anschluß schließen
MsCom1.PortOpen = False

End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
DLL aufrufen200Friedrich12.04.02 01:28
Re: DLL aufrufen1.754ModeratorDieter12.04.02 07:01
Re: DLL aufrufen173Friedrich12.04.02 18:14
Re: DLL aufrufen Lösung gefunden179Friedrich15.04.02 12:16

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel