Öffnen eines vorhandenen Projekts

  • VB.NET

Es gibt 40 Antworten in diesem Thema. Der letzte Beitrag () ist von RodFromGermany.

    Öffnen eines vorhandenen Projekts

    Hallo zusammen,

    Habe da, vermutlich eine ganz dumme Frage.
    Habe mir einen NFC Kartenleser / Schreiber zugelegt. Beim Hersteller gibt es Demo Projekte zum Download.
    Habe mir eins heruntergeladen und getestet, Funktion ist da. Klappt also alles.
    Jetzt zu meiner Frage:

    Gibt es eine Möglichkeit, anhand des Projektes dies in VB2010 zu öffnen das ich denn Quellcode komme und mein eigens Projekt zu schreiben???



    Habe mal im Anhang das heruntergeladene Projekt hinzugefügt, welches bei mir funktioniert.

    Wäre für jede schnell Hilfe Dankbar...

    VB.rar
    Autsch. Das ist ja VB6. Na wurscht. Einfach zu Beginn mal die Declare.bas und die frm_main.frm mit notepad öffnen, da ist der Code in Klartext drinne.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @VaporiZed

    Hey, ja das habe ich auch gesehen das es so veraltert ist , leider komme ich nicht klar damit. ;(
    Gibt es eine möglichkeit das mein VB, es automatisch umbaut ???

    Kann ich den Klartext Code eins zu eins übernehmen???

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Otti“ ()

    Otti schrieb:

    automatisch umbaut
    Nein.
    Die GUI kannst Du nachempfinden.
    Die DLL-Deklarationen musst Du .NET-kompatibel umschreiben, den Code der eigentlichen Ansteuerung kannst Du im Prinzip übernehmen, die Datentypen musst Du dann entsprechend anpassen.
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @VaporiZed

    Hey habe nun versucht den Quellcode zu übernehmen in VB.
    Beim Starten der Anwendung und Verbinden des Portes in Verbindung mit der eingefügten *.dll , erfolg folgender Fehler



    @RodFromGermany
    ?( Hey, ja das hört sich ja extrem einfach an, wenn man weis wie es geht...
    Würdest du mir denn gefallen tuen und mir das machen? Ich weis absolut nicht ,wie, wo usw. ich da anfangen bzg. anfangen soll.

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Otti“ ()

    @Otti Wenn diese Prozedur in der DLL enthalten ist, poste mal die alte Deklaration.
    Die muss dann .NET-kompatibel gemacht werden.
    #####################
    Wenn die DLL nicht zu groß ist, häng die DLL an und sämtliche Deklarationen dazu aus dem alten Projekt.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    Du meinst die dll oder?

    VB.NET-Quellcode

    1. ​Option Strict Off
    2. Option Explicit On
    3. Module mo_declare
    4. '******************ͨѶÃüÁî******************************************************************
    5. '´ò¿ª´®¿Ú int WINAPI rf_init_com(int port,long baud);
    6. Public Declare Function rf_init_com Lib "MasterRD.dll" (ByVal port As Integer, ByVal baud As Integer) As Integer
    7. '¹Ø±Õ´®¿Ú int WINAPI rf_ClosePort();
    8. Public Declare Function rf_ClosePort Lib "MasterRD.dll" () As Integer
    9. '******************************************MF1*****************************************
    10. 'int WINAPI rf_request(unsigned short icdev, unsigned char model, unsigned short *TagType);
    11. Public Declare Function rf_request Lib "MasterRD.dll" (ByVal icdev As Short, ByVal model As Byte, ByRef TagType As Short) As Integer
    12. 'int WINAPI rf_anticoll(unsigned short icdev, unsigned char bcnt, unsigned char *ppSnr,
    13. 'unsigned char* pRLength);
    14. Public Declare Function rf_anticoll Lib "MasterRD.dll" (ByVal icdev As Short, ByVal bcnt As Byte, ByRef ppsnr As Byte, ByRef pRLength As Byte) As Integer
    15. 'int WINAPI rf_select(unsigned short icdev,unsigned char *pSnr,unsigned char srcLen,
    16. 'unsigned char *Size);
    17. Public Declare Function rf_select Lib "MasterRD.dll" (ByVal icdev As Short, ByRef pSnr As Byte, ByVal srclen As Byte, ByRef size As Byte) As Integer
    18. 'int WINAPI rf_M1_authentication2(unsigned short icdev,unsigned char model,unsigned char block,
    19. 'unsigned char *key);
    20. Public Declare Function rf_M1_authentication2 Lib "MasterRD.dll" (ByVal icdev As Short, ByVal model As Byte, ByVal block As Byte, ByRef key As Byte) As Integer
    21. 'int WINAPI rf_M1_read(unsigned short icdev, unsigned char block, unsigned char *ppData,
    22. 'unsigned char *pLen);
    23. Public Declare Function rf_M1_read Lib "MasterRD.dll" (ByVal icdev As Short, ByVal block As Byte, ByRef buff As Byte, ByRef pLen As Byte) As Integer
    24. 'int WINAPI rf_M1_write(unsigned short icdev, unsigned char block, unsigned char *data);
    25. Public Declare Function rf_M1_write Lib "MasterRD.dll" (ByVal icdev As Short, ByVal block As Byte, ByRef buff As Byte) As Integer
    26. 'int WINAPI rf_halt(unsigned short icdev);
    27. Public Declare Function rf_halt Lib "MasterRD.dll" (ByVal icdev As Short) As Integer
    28. End Module
    @Otti Genau das, ich schau mir das mal an.
    Wie lang ist die MasterRD.dll? Pack die in eine ZIP und häng sie an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Otti Sorry, ich kann das Archiv nicht öffnen (hab 3 Rechner probiert).
    Mach mal ein ZIP draus.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Otti Also:
    Ohne Hardware läuft es.
    Projekt als x86 und der Return-Type von rf_init_com().
    Die Parameter musst Du mit der Hardware festlegen.
    DllDeclare.zip
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @Otti 32-Bit Projekt und dann werden die Befehle einzeln aufgerufen und die zurückgegebenen Werte mit dem Prozedurnamen aufgelistet.
    rf_init_com() gibt eine ID zurück, mit der die anderen Befehle als jeweils erstem Parameter aufgerufen werden.
    Feddich.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    Otti schrieb:

    Rückmeldung
    Keine Ahnung,
    da musst Du mal die Beschreibung der Befehle durcharbeiten.
    Die 42 hab ich nur eingetragen um zu sehen, ob der Wert in der DLL verändert wird.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    Moin, wollte nochmal auf das Thema mit den jeden Byte zurück kommen.
    Habe mir die Anleitung mal angesehen, komme allerdings überhaupt nicht klar.
    Könntest du dir diese evt. mal anschauen und mir einen Tip geben.
    Wäre echt klasse, stehe total aufen Schlauch ?(
    Dateien

    Otti schrieb:

    das Thema mit den jeden Byte
    welche(s)?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @RodFromGermany

    Du hattest als Grundwert 42 genommen bei den jeweiligen Befehlen,
    an Hand der Beschreibung , kann ich leider nicht entnehmen was , was sein soll.
    Habe bei

    Quellcode

    1. rf_anticoll​
    nach Anleitung bei

    Quellcode

    1. ​retVal = rf_anticoll(icdev, 4, ppsnr, pRLength)
    eine 4 Vergeben und bekomme
    eine 10 zurück, was vermutlich richtig ist, allerdings weis ich nicht wo ich die Bytes für die Declaration herbekommen soll, die du mit "42" vorgegeben hast, sprich

    Quellcode

    1. Dim ppsnr As Byte = 42
    2. Dim pRLength As Byte = 42
    3. retVal = rf_anticoll(icdev, 4, ppsnr, pRLength)
    4. Me.ListBox1.Items.Add(String.Format("rf_anticoll: {0}, {1}, {2}", retVal, ppsnr, pRLength))​