5

わかった。ええと、この質問は最初の10分以内に閉じられる可能性が高いことは知っていますが、解決策を見つけるためにほぼ1日半を費やしたので、とにかく質問します。それでも、私はこれを理解することはできません。デモはありますが、インターネット上でもHASP(safenet)Webサイトでも、これに関する情報はあまりありません。

HASPHLUSBドングルを持っています。私は彼らのデモを変換してテスト実行しようとしますが、私の人生の間、私はそれをログインさせることさえできません。Aladdin.HASP.HaspStatus.HaspDotNetDllBroken例外を発生させ続けます。

ただし、Cバージョンのデモを実行すると、完全に機能します。

これが私のコードのCsharpバージョンです:

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

USB HASPにログインして、そのHaspIDと設定をメモリに取得したいと思います。

前もって感謝します、

4

1 に答える 1

3

HASPランタイムのすべての依存関係がない可能性があります。私はアプリを詰め込んでいます:

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

HASPには1つのランタイムライブラリが必要であり、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アプリの周りに封筒を置くことができませんでした。

于 2012-05-25T22:31:49.723 に答える