Вопрос по exception, .net, c# – HASP HL рабочая демонстрация, необходимая для C #

5

Хорошо. Ну, я знаю, что этот вопрос имеет хорошие шансы быть закрытым в течение первых 10 минут, но я все равно задам его, потому что я потратил почти полтора дня, пытаясь найти решение. Тем не менее, я не могу понять это. Об этом не так много информации в Интернете, даже на веб-сайте HASP (safenet), хотя у них есть демоверсии.

У меня есть USB-ключ HASP HL. Я пытаюсь конвертировать их демо-версию и запускать тестирование, но для жизни я просто не могу получить его даже при входе в систему. Продолжает растиAladdin.HASP.HaspStatus.HaspDotNetDllBroken исключение.

Однако, если я запускаю C-версию их демо, она работает отлично.

Вот Csharp-версия моего кода:

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

Я хотел бы войти в USB HASP и получить его HaspID и настройки в своей памяти.

Заранее спасибо,

Ваш Ответ

1   ответ
3

у вас нет всех зависимостей для среды выполнения 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 без какой-либо комбинации настроек.

Daniel, я смог найти только hasp_net_windows.dll и MSVCR71.dll, а не hasp_windows_NNNNN.dll, о котором вы говорите. Нужно ли загружать отсутствующий файл DLL из Интернета? Те файлы, которые я нашел, находятся в исполняемой папке. Тем не менее, я получаю то же исключение. Я запустил Depends.exe, и он продолжает жаловаться, что IEShims.dll отсутствует, даже если он обнаружен в моей системе. ThN
ieshims.dll не важен. Посмотрите на тот инструмент, который есть в hasp, может быть, он генерирует эту dll для вас, я не могу вспомнить. Daniel Mošmondor
Даниил, я наконец-то смог успешно прочитать мой ключ HASP. Однако функция hasp.Getfile не будет работать для меня. Итак, я использовал hasp.getsessioninfo, который работал. Спасибо за помощь ThN
Daniel, спасибо за ваш ответ, но я все еще не могу заставить его работать. Всякий раз, когда я пытаюсь добавить MSVCR71.dll в свой список ссылок, компилятор выдает сообщение «Операция недопустима из-за текущего состояния объекта». Я не уверен почему. Единственный DLL-файл, на который я могу добавить ссылку - это hasp_net_windows.dll. ThN
Это неуправляемая DLL и поэтому не может быть добавлена в качестве ссылки. Просто поместите его в исполняемую папку. Кроме того, используйте depen.exe для поиска недостающей зависимой библиотеки DLL, которая может вам понадобиться. Daniel Mošmondor

Похожие вопросы