2012-05-25 8 views
5

OK. Bene, so che questa domanda ha buone probabilità di essere chiusa entro i primi 10 minuti, ma ho intenzione di chiederlo comunque perché ho passato quasi un giorno e mezzo a cercare di trovare una soluzione. Tuttavia, non riesco a capire questo. Non ci sono molte informazioni su questo su Internet nemmeno sul sito Web HASP (safenet) anche se hanno demo.Demo di lavoro HASP HL ​​necessario per C#

Ho un dongle USB HASP HL. Cerco di convertire la loro demo e test eseguirlo ma per la vita di me semplicemente non riesco a farlo per accedere anche. Continua a generare l'eccezione Aladdin.HASP.HaspStatus.HaspDotNetDllBroken.

Tuttavia, se eseguo la versione C della loro demo, funziona perfettamente.

ecco la versione Csharp del mio codice:

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

Vorrei eseguire il login per HASP USB e ottenere la sua HaspID e le impostazioni in sua memoria.

Grazie in anticipo,

risposta

3

Potrebbe essere che non si hanno tutte le dipendenze per il runtime HASP. Sto imballaggio con l'applicazione:

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

Una runtime è richiesto dalla HASP e non ti quale lo dice a meno che non lo metti nel programma di utilità Depends.exe (probabilmente avete sul vostro Visual Studio installazione).

Per accedere (e leggere alcuni byte):

  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 
       } 
      } 

Speranza che aiuta. Il mio software HASPed funziona come un fascino. BTW, non è stato in grado di mettere la busta attorno all'app .NET senza alcuna combinazione di impostazioni.

+0

Daniel, grazie per la risposta, ma non riesco ancora a farlo funzionare. Ogni volta che provo ad aggiungere MSVCR71.dll al mio elenco di riferimento, il compilatore genera il messaggio "L'operazione non è valida a causa dello stato corrente dell'oggetto." Non sono sicuro del perché. L'unico file dll che sono in grado di aggiungere è hasp_net_windows.dll. – ThN

+0

Questa è una dll non gestita e quindi non può essere aggiunta come riferimento. Basta inserirlo nella cartella eseguibile. Inoltre, utilizza depends.exe per trovare qualsiasi DLL dipendente mancante che potrebbe essere necessaria. –

+0

Daniel, sono stato in grado di trovare solo hasp_net_windows.dll e MSVCR71.dll e non hasp_windows_NNNNN.dll di cui parli. Devo scaricare il file DLL mancante da Internet? Quei file che ho trovato si trovano nella cartella eseguibile. Tuttavia, sto ottenendo la stessa eccezione. Ho eseguito Depends.exe e continua a lamentarsi del fatto che IEShims.dll manchi, anche se è stato trovato nel mio sistema. – ThN