SDk vom Fremdhersteller nutzen

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    SDk vom Fremdhersteller nutzen

    Hallo,

    ich möchte gerne einen Sicherheits Chip an meinen PC anbinden. Der Chip ist eine SD Karte oder ein USB Stick auf dem sich der Schlüssel befindet.
    Lt. Hersteller (Swissbit) ist dafür eine SDK vorhanden.

    Ich hab noch nie mit sowas gearbeitet.
    Wie bindet man eine SDK von einem Hersteller ein?
    Wie wird sowas dann im Programm genutzt?
    Gibt es Tutorials für VB.net?

    eine ausfürliche Erläuterung wäre Nett aber einen Schubs in die richtige Richtung (YouTube Tutorials, Google Suchwörter, Beispiele) würde schon helfen.

    danke
    SDK ist zunächst mal "irgendein" Software Development Kit.
    Wenn du Glück hast, gibt es fertige .Net-DLLs, die einfach in deinem Projekt referenziert werden können.
    Wenn du Pech hast, ist es komplizierter.

    Da wirst du wohl die Doku des SDK bemühen müssen, um genaueres zu erfahren.
    Ist das SDK irgendwo öffentlich verfügbar?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @frifri Falls Du nur nativen Code hast, schau mal hier rein, da musst Du die Deklarationen nach .NET übertrtagen:
    Austausch von Daten zwischen einer VB.NET-exe und einer C-DLL, 32 und 64 Bit
    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!

    petaod schrieb:

    SDK ist zunächst mal "irgendein" Software Development Kit.

    Has du da mal irgend ein Beispiel wie man mit sowas umgeht. Darf ja auch aus einer ganz anderen Ecke sein, nur um mal zu sehen wie man damit arbeitet.
    Ich hab da überhaupt keine vorstellung wie ich an die sache ranngehen kann.

    petaod schrieb:

    Da wirst du wohl die Doku des SDK bemühen müssen, um genaueres zu erfahren.
    Ist das SDK irgendwo öffentlich verfügbar?

    leider nicht öffentlich.



    Code hab ich noch gar nichts, ich versuche gerade dahiter zu kommen was ein SDK überhaupt macht / kann.

    blöd ist halt wenn man googelt "vb.net SDK" kommt halt alles über .net und nichts über fremde SDK und deren nutzung.
    Der Begriff SDK ist so allgemein, dass er nichtssagend ist.
    Er beinhaltet nichts Konkretes.

    Meist besteht er aus einem vorkompiliertem Interface (.Net-DLL, WinAPI-DLL, Treiber, JCL, JAR ...)
    und aus einigen Beispielprogrammen, wie dieses Interface anzusprechen ist.

    Wie gesagt, wenn du Glück hast, gibt es eine .Net-DLL mit Beispielcode in C#.
    Den Code kannst du dann auch problemlos in VB.Net konvertieren und verwenden.

    Wenn du eine WinAPI-DLL und C-Code bekommst, hast du den in Post #3 beschriebenen Fall und die dortige Anleitung, wie du zu verfahren hast.

    Wenn du eine JCL oder JAR bekommst, hast du meistens Java-Code dabei und dann wird's anspruchsvoll mit VB.Net

    Wie du siehst, kann man dir keine gemeingültige Antwort auf deine Frage geben, solange du nicht damit raus rückst (oder nicht weißt), um welches SDK es sich handelt.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --
    @frifri Dein Ziel sollte es sein, eine "Wrapper-Klasse" zu bauen, in der die nativen Funktionsaufrufe gekapselt sind und die dann in .NET ordentlich angesprochen werden kann.
    In C# und VB.NET sieht das dann z.B. so aus:
    C#

    C#-Quellcode

    1. using System;
    2. using System.Runtime.InteropServices;
    3. namespace UsbCamera
    4. {
    5. static class DieKamera
    6. {
    7. private const string DllName = "DieKamera.dll";
    8. //------------------------------------------------------------------------------
    9. //Initialize
    10. //------------------------------------------------------------------------------
    11. [DllImport(DieKamera.DllName, EntryPoint = "DieKamera_Open")]
    12. public static extern IntPtr Open(uint instance);
    13. [DllImport(DieKamera.DllName, EntryPoint = "DieKamera_Close")]
    14. public static extern void Close(IntPtr camera);
    15. [DllImport(DieKamera.DllName, EntryPoint = "DieKamera_GetLastError")]
    16. public static extern uint GetLastError(IntPtr camera);
    17. [DllImport(DieKamera.DllName, EntryPoint = "DieKamera_CameraCount")]
    18. public static extern uint CameraCount();
    19. }
    20. }
    'VB.NET

    VB.NET-Quellcode

    1. Imports System
    2. Imports System.Runtime.InteropServices
    3. Namespace UsbCamera
    4. Module DieKamera
    5. Private Const DllName As String = "DieKamera.dll"
    6. <DllImport(DieKamera.DllName, EntryPoint:="DieKamera_Open")>
    7. Function Open(ByVal instance As UInteger) As IntPtr
    8. <DllImport(DieKamera.DllName, EntryPoint:="DieKamera_Close")>
    9. Sub Close(ByVal camera As IntPtr)
    10. <DllImport(DieKamera.DllName, EntryPoint:="DieKamera_GetLastError")>
    11. Function GetLastError(ByVal camera As IntPtr) As UInteger
    12. <DllImport(DieKamera.DllName, EntryPoint:="DieKamera_CameraCount")>
    13. Function CameraCount() As UInteger
    14. End Module
    15. End Namespace
    C# ist gelaufen, VB.NET über Konverter.
    Die Namen der Prozeduren sind verändert, die Klasse in sich ist nicht vollständig.
    Im Beispiel wurde der Wrapper für die Kamera-DLL "DieKamera.dll" implementiert.
    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!
    Ich hab mal von einer SDK für epson Kassendruckern gelesen.
    Ich schau mal ob ich das was finde damit ich mal dafür ein Beispiel habe.

    An die andere SDK komme ich nicht ran, bekommt man nur wenn man so einen Chip kauft und den kann man nur kaufen wenn man eine PC Firma hat.

    frifri schrieb:

    und den kann man nur kaufen wenn man eine PC Firma hat.
    Brauchst Du den privat oder dienstlich?
    Wenn privat: Wofür?
    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!

    frifri schrieb:

    An die andere SDK komme ich nicht ran, bekommt man nur wenn man so einen Chip kauft

    Wenn du keinen kaufen willst, wie willst du dann das folgende realisieren?

    frifri schrieb:

    ich möchte gerne einen Sicherheits Chip an meinen PC anbinden
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum
    Epson Kassendrucker-SDK? Ich kenne da nur die dicken Programmierreferenzbücher, in denen drinne steht, welche Befehle man über einen Generic Printer/RawDataPrinter schicken muss, um zu erreichen, dass der Drucker bestimmte Sachen druckt. Aber n SDK? Wär mir neu. Aber hey, ich kenn auch nicht alles.
    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.

    petaod schrieb:

    Was hat ein Epson-Kassendrucker mit einem Swissbit-Sicherheits-Chip gemeinsam?


    Um einen Grundsätzlichen Umgang mit einem SDK von einem Hersteller zu erlernen.
    so als ob ich lernen will wie man Kartoffeln kocht und gleichzeitig die Vorgehensweise benutzen kann um Reis zu kochen.


    Marcus Gräfe schrieb:


    Wenn du keinen kaufen willst, wie willst du dann das folgende realisieren?


    Den Chip würde ich dann wohl schon kaufen aber, wie auch geschrieben, die verkaufen nur an Firem der PC oder Elektronik Branche.


    RodFromGermany schrieb:

    Brauchst Du den privat oder dienstlich?
    Wenn privat: Wofür?


    eigentlich dienstlich aber meine Firma ist nicht aus der PC Branche

    *Vollzitat korrigiert* ~NoFear23m


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

    frifri schrieb:

    Um einen Grundsätzlichen Umgang mit einem SDK von einem Hersteller zu erlernen.

    Das wird so nicht klappen weil es zum einen verschiedene Arten von "SDKs" gibt wie meine Vorredner schon erleutert haben und zum anderen dann jeder Hersteler völlig anders implementiert.

    Um an deinen vergleich anzuknüpfen. Wenn du lernst wie man Kartoffeln koch und du das perfekt kannst, bedeutet das nicht das du deshalb auch Spinat machen kannst. Geht ja auch anders. Die logik geht hier nicht auf.
    Besorge dir das SDK und die Infos vom Hersteller und dann (und wirklich erst dann) kannst du dir Gedanken darüber machen wie du es nutzen kannst, nicht vorher.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    frifri schrieb:

    eigentlich dienstlich
    Dann lass das Dir von Deiner Firma spendieren und 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!
    ich hatte halt gedacht es geht ungefär so: das SDK vom Hersteller bekommen, dann entpacke, es irgendwie mit .Net Studio "verbinden" und dann die Befehle / Funktionen nutzen.

    das es da keinen einheitlichen Weg gibt, ich muss ja irgendwie ansetzen.

    Hab mich jetzt mit Epson in Verbindung gesetzt. Die bieten so was an, das ist dann im Drucker enthalten.
    Wird über ein Epson SDK eingebunden (Fiskal API).

    *unnötiges Vollzitat entfernt* ~NoFear23m

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

    frifri schrieb:

    Hab mich jetzt mit Epson in Verbindung gesetzt. Die bieten so was an, das ist dann im Drucker enthalten.
    Wird über ein Epson SDK eingebunden (Fiskal API).

    Im Eingangsbeitrag ist die rede von einem Sicherheitsschlüssel, nun von einem Epson Drucker.

    Nochmals, besorge dir die API, dann siehst du wie du damit umgehen kannst. Alles andere ist reine Spekulation und führt dich nicht ans Ziel.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##