C#所需的HASP HL工作演示

好的。 好吧,我知道这个问题很有可能在前10分钟内被关闭,但我还是会问它,因为我花了将近一天半的时间试图寻找解决方案。 不过,我无法想出这个。 虽然他们有演示,但即使在HASP(safenet)网站上也没有太多关于此的信息。

我有一个HASP HL USB加密狗。 我尝试转换他们的演示和测试运行它,但对于我的生活我甚至无法让它登录甚至。 它不断提高Aladdin.HASP.HaspStatus.HaspDotNetDllBrokenexception。

但是,如果我运行他们演示的C版本,它可以很好地工作。

这是我的代码的Csharp版本:

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

我想登录USB HASP并在其内存中获取其HaspID和设置。

提前致谢,

可能是您没有HASP运行时的所有依赖项。 我正在打包应用程序:

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

HASP需要一个运行时库,它不会告诉您哪一个,除非您将它放在DEPENDS.EXE实用程序中(您可能已安装Visual Studio)。

要登录(并读取一些字节):

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

希望能帮助到你。 我的HASPed软件就像一个魅力。 BTW,在没有设置组合的情况下无法在.NET应用程序周围放置信封。