2012-05-25 6 views
5

Okay. Nun, ich weiß, dass diese Frage eine gute Chance hat, innerhalb der ersten 10 Minuten geschlossen zu werden, aber ich werde es trotzdem fragen, denn ich habe fast anderthalb Tage damit verbracht, eine Lösung zu finden. Trotzdem kann ich das nicht herausfinden. Es gibt nicht viele Informationen darüber im Internet nicht einmal auf der HASP (Safenet) Website, obwohl sie Demos haben.HASP HL ​​Arbeitsdemo benötigt für C#

Ich habe einen HASP HL ​​USB-Dongle. Ich versuche, ihr Demo zu konvertieren und es zu testen, aber für das Leben von mir kann ich es einfach nicht zum Login bekommen. Es erhöht weiterhin Aladdin.HASP.HaspStatus.HaspDotNetDllBroken Ausnahme.

Allerdings, wenn ich die C-Version ihrer Demo laufen, funktioniert es perfekt.

Hier ist die Csharp Version meines Code:

Aladdin.HASP; 
HASP myHasp = new HASP(); 
var thestatus = myHasp.Login(vender_code); 
myHasp.Logout; 

Ich mag würde zu USB HASP einzuloggen und seine HaspID und die Einstellungen in seinem Speicher zu erhalten.

Vielen Dank im Voraus,

Antwort

3

Es könnte sein, dass Sie nicht alle Abhängigkeiten für die HASP Laufzeit haben. Ich bin mit der App Verpackung:

hasp_windows_NNNNN.dll (NNNNN = your number) 
hasp_net_windows.dll 
MSVCR71.DLL (added manually) 
msvc runtime 80 

Eine Laufzeitbibliothek von HASP erforderlich ist, und es macht Sie nicht, welche sagen, wenn Sie es in der Depends.exe Dienstprogramm setzen (Sie haben Sie wahrscheinlich auf Ihrem Visual Studio Installation).

Um sich anzumelden (und einige Bytes lesen):

  byte[] key = new byte[16]; 
      HaspFeature feature = HaspFeature.FromFeature(4); 
      string vendorCode = "your vendor string, get it from your tools"; 
      Hasp hasp = new Hasp(feature); 
      HaspStatus status = hasp.Login(vendorCode); 
      if (HaspStatus.StatusOk != status) 
      { 
       // no license to run 
       return false; 
      } 
      else 
      { 
       // read some memory here 
       HaspFile mem = hasp.GetFile(HaspFileId.ReadOnly); 
       mem.Read(key, 0, 16); 
       status = hasp.Logout(); 
       if (HaspStatus.StatusOk != status) 
       { 
        //handle error 
       } 
      } 

Hoffe, es hilft. Meine HASPed-Software funktioniert wie ein Zauber. BTW, war nicht in der Lage, Umschlag um .NET-App ohne Kombination von Einstellungen zu legen.

+0

Daniel, Vielen Dank für Ihre Antwort, aber ich kann es immer noch nicht zur Arbeit bringen. Immer wenn ich versuche, MSVCR71.dll zu meiner Referenzliste hinzuzufügen, löst der Compiler die Meldung "Operation ist aufgrund des aktuellen Zustands des Objekts nicht gültig" aus. Ich bin mir nicht sicher warum. Die einzige DLL-Datei, die ich hinzufügen kann, ist hasp_net_windows.dll. – ThN

+0

Das ist nicht verwaltete DLL und kann daher nicht als Referenz hinzugefügt werden. Legen Sie es einfach in den ausführbaren Ordner. Verwenden Sie außerdem depand.exe, um fehlende abhängige DLL zu finden, die Sie möglicherweise benötigen. –

+0

Daniel, ich konnte nur hasp_net_windows.dll und MSVCR71.dll finden und nicht die hasp_windows_NNNNN.dll, von der du sprichst. Muss ich die fehlende DLL-Datei aus dem Internet herunterladen? Die Dateien, die ich gefunden habe, befinden sich im ausführbaren Ordner. Trotzdem bekomme ich dieselbe Ausnahme. Ich lief Depends.exe und es beschwert sich, dass IEShims.dll fehlt, obwohl es in meinem System gefunden wird. – ThN