好的。好吧,我知道这个问题很可能在前10分钟内被解决,但是无论如何我都会问这个问题,因为我花了整整一天半的时间来寻找解决方案。不过,我无法弄清楚这一点。尽管Internet上有演示,但在Internet上甚至在HASP(安全网)网站上都没有多少相关信息。
我有一个HASP HL USB加密狗。我尝试转换他们的演示并对其进行测试运行,但是对于我一生来说,我什至无法登录。它不断引发 Aladdin.HASP.HaspStatus.HaspDotNetDllBroken 异常。
但是,如果我运行他们演示的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软件的工作原理很吸引人。顺便说一句,在没有任何组合设置的情况下,无法在.NET应用程序周围放置信封。
关于c# - C#所需的HASP HL工作演示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10760673/