hallo, ich habe seit längerem das oben benannte board. funktioniert alles einwandfrei mit beipspielprogrammen usw. ich wollte nun eigene anwendungen in vb schreiben aber bekomme die dll einfach nicht eingebunden. habe keine wirklichen erfahrungen in vb lediglich verfüge ich über grundkenntnisse in fb. bitte um rat.
Also soweit ich das verfolgen kann, handelt es sich um die K8055D.dll. Dies ist eine Standard C(++) DLL. Die kannst du nicht in VB einbinden, sondern du mußt die Einsprungpunkte der DLL deklarieren, z. bsp. so: Private Declare OpenDevice Lib "k8055d.dll" (byval ladress as long) as long Damit ist der Aufruf deklariert und vb findet den Einsprungpunkt. einzig der returncode, der hier als long deklariert ist, muß nicht unbedingt ein long sein. Für die Applikation mußt du sicherstellen, daß die k8055.dll erreichbar ist, also entweder im Windows Suchpfad oder im Applikationsverzeichniss vorhanden ist. Fertig. (natürlich muß jede gewünschte Funktion deklariert sein) Die zugehörigen DLL's von der k8055d müssen auch erreichbar sein, kann mittels einem Dependency Viewer überprüft werden. Hoffe das hilft.
ich hab den code aus der pdf von der cd. für vb. die dll is im system 32 ordner aber der compiler zeigt mir trotzdem nen fehler an. das is der punkt an dem ich eben nicht weiter komme.
> zeigt mir trotzdem nen fehler an.
Wenn du wirklich den Fehler "nen fehler" hast ist das wahrscheinlich ein
ganz spezieller Fehler, der nur in Zusammenhang mit der k8055d.dll
auftritt. Vielleicht hilft eine neue Version der DLL um "nen fehler" zu
beheben.
Dein Code sieht gut aus, da sind keine Fehler drin.
ja ich habe "nen fehler". sorry für die präzise angabe (= das ist der code der nicht funktioniert. ich bekomme in fast jeder zeile den fehler "die anweißung ist in einem namespace ungültig" angezeigt. meines wissens habe ich die neuste version der dll.
1 | Option Explicit On |
2 | Module Module1 |
3 | |
4 | Sub Main() |
5 | |
6 | End Sub |
7 | |
8 | End Module |
9 | |
10 | Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal Cardadress As Long) As Long |
11 | Private Declare Sub CloseDevice Lib "k8055d.dll" () |
12 | Private Declare Function ReadAnalogChannel Lib "k8005d.dll" (ByVal Channel As Long) As Long |
13 | Private Declare Sub ReadAnalog Lib "k8055d.dll" (ByVal Data1 As Long, ByVal Data2 As Long) |
14 | Private Declare Sub OutputAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long, ByVal Data As Long) |
15 | Private Declare Sub OuntputAllAnalog Lib "k8005d.dll" (ByVal Data1 As Long, ByVal Data2 As Long) |
16 | Private Declare Sub ClearAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long) |
17 | Private Declare Sub SetAllAnalog Lib "k8055d.dll" () |
18 | Private Declare Sub ClearAllAnalog Lib "k8055d.dll" () |
19 | Private Declare Sub SetAnalogChannel Lib "k8055d.dll" (ByVal Channel As Long) |
20 | Private Declare Sub WriteAllDigital Lib "k8055d.dll" (ByVal Data As Long) |
21 | Private Declare Sub ClearDigitalChannel Lib "k8055d.dll" (ByVal Channel As Long) |
22 | Private Declare Sub ClearAllDigital Lib "k8055d.dll" () |
23 | Private Declare Sub SetDigitalChannel Lib "k8055d.dll" (ByVal Channel As Long) |
24 | Private Declare Sub SetAllDigital Lib "k8055d.dll" () |
25 | Private Declare Function ReadDigitalChannel Lib "k8055d.dll" (ByVal Channel As Long) As Boolean |
26 | Private Declare Function ReadAllDigital Lib "k8055d.dll" () As Long |
27 | Private Declare Function ReadCounter Lib "k8055d.dll" (ByVal CounterNr As Long) As Long |
28 | Private Declare Sub ResetCounter Lib "k8055d.dll" (ByVal Counternr As Long) |
29 | Private Declare Sub SetCounterDebounceTime Lib "k8055d.dll" (ByVal CounterNr As Long, ByVal DebounceTime As Long) |
30 | |
31 | |
32 | Private Declare Sub Connect_Click() |
33 | Dim CardAdress As Long |
34 | Dim h As Long |
35 | CardAdress = 0 |
36 | CardAdress = 3 - (Check1(0).Value + Check1(1).Value * 2 |
37 | h = OpenDevice(CardAdress) |
38 | Select case h |
39 | case 0,1,2,3 |
40 | Label1.Caption = "Card " + Str(h) + " connected" |
41 | case -1 |
42 | Label1.Caption = "Card " + Str(CardAdress) + " not found" |
43 | end select |
44 | end sub |
45 | Private Sub From_Terminate() |
46 | CloseDevice() |
47 | End Sub |
CardAdress = 3 - (Check1(0).Value + Check1(1).Value * 2 Fehlt eine Klammer
also ich hab den compiler "microsoft visual basic 2008 express edition". ist der falsche oder wie?!
Hallo Das muß gehen. Auch mit Long. Ich habe VB2005.net da gibt es mit long manchmal Schwierigkeiten. Ersetze dann alles mit Integer. Kopiere mal alle benötigten Dateien ins Debug Verzeichnis. K8055D.dll FASTTime32.dll K8055E0.exe K8055E1.exe K8055E2.exe K8055E3.exe Ich habe das so gemacht,damit alles schön beisammen ist. Bildschirmcopy vom Fehler wäre nett. Gruß
Mit Deinen Code und diesen Dateien im Debug. Finde die Quelle nicht.
erstmal danke für die hilfe.ich weiß einfach nicht was ich falsch mache. ich erstelle eine consolenanwendung kopiere den code rein und er zeigt mit die 34 (glaue ich) fehler an. wie schon gesagt die dll ist im system32 ordner und das mit dem debuggen bekomme ich nicht auf die reihe. wenn ich es richtig vertanden habe sucht das programm nach fehlern im quellcode? wo muss ich diese dateien hinkopieren?
Deine Fehler sind alle im Modul1 Zeige mal den cod vom Modul1, vielleicht finden wir den Fehler. Wenn ich mein Projekt wiederfinde kann ich es hier reinstellen. Das meiste ist auch nur aus dem Netz,aber es läuft. Gruß
wäre sehr nett,weil ich mich in vb nicht wirklich auskenne und mir das dann mal anschauen könnte und versuchen könnte es zu verstehn. wie schon gesagt ich verfüge lediglich über grundkenntisse in fb. wäre schade wenn es jz am programmieren scheitern würde das zusammenlöten und alles hab prima funktionniert. die testprogramme sind auch alle gelaufen.
Was willst du denn steuern? Hoffentlich ist es das richtige Gruß
vergessen Debug exe Starten. Alle benötigten Dateien sind im DebugVerzeichnis.
vorerst wollte ich nur ein paar kleine versuche machen. die ausgänge testen und sowas. aber jetzt blicke ich garnichtmehr druch. habe die projektdatei glaube ich konvertiert weil es in einer älteren version geschrieben wurde. aber ich finde da nirgends einen code der in i.einer art und weiße was mit der dll zu tuhn hat?
Hast du einfach mal die Debug.exe gestartet. Das ist ein VB.2005 Projekt,was soll hier konvertiert werden. Die Dll wird im Modul aufgerufen.
beim öffnen der projektdatei kam eine meldung das dieses konvertiert werden müsse weil sie mit einer älteren version von vb geschrieben wurde. aber hat alles geklappt. in dem ordner ist die datei "vers_dll_vb.net.exe" das beispielprogramm. das funktioniert auch. alles klar habs gefunden danke^^
also mir geht das ähnlich: ich hab auch vb 2008 bei mir ist ein fehler, den ich nich behoben bekomme der: h = OpenDevice(CardAdress) OpenDevice ist nicht deklariert wie kann ich den beheben???????????????????????????????? die Text´stelle ist diese: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim CardAddress As Integer Dim h As Integer CardAddress = 3 If CheckBox1.Checked Then CardAddress = CardAddress - 1 If CheckBox2.Checked Then CardAddress = CardAddress - 2 h = OpenDevice(CardAddress) Select Case h Case 0, 1, 2, 3 Label1.Text = "Roboterarm durch Adresse" + Str(h) + " verbunden" Timer2.Start() Case -1 Label1.Text = "Roboterarm nicht durch Adresse" + Str(CardAddress) + "verbunden" Case -2 Label1.Text = "K8055E" + Mid(Str(CardAddress), 2, 1) + ".EXE nicht gefunden" End Select If h >= 0 Then Timer1.Enabled = True End Sub am anfang hab ich aber : Private Declare Function OpenDevice Lib "k8055d.dll" (ByVal ladress As Long) As Long stehen. Was is falsch Achja das sind nur ausschnitte danke im vorraus(bin verzweifelt)
Hallo Alle Dateien im Debug Verzeichnis. Nur für Adr.00 Wenn du noch nicht Konvertieren willst starte Debug.exe Gruß
Ich habe auch ein Problem mit der Programmierung, ich habe nun eine plausible Erklärung gefunden, wenn diese falsch ist wäre es nett wenn ihr mich darauf hinweisen könntet. Ich kann das beispielprogramm welches auch auf der CD war, nicht starten, erklärung dafür war bei mir, dass ich schon nicht mahr auf xp sondern Vista arbeite, nun hab ich auf Velleman eu ganz versteckt gelesen, dass man Programme programieren kann, die auf allen Windows Sysztemen laufen, bis auf Vista und windows 7. Ich glaube nun, dass das einfach nicht mehr bei Vista geht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.