私はgtop11dotnet.dllを持っています。 GemaltoのWebサイトから.NET PKCS#11 Library for Windows v2.2.0.9です。 DLLには、スマートカードのシリアル番号またはGUIDを取得するために使用できるC_GetCardPropertyメソッドが含まれています。 PKCS#11ユーザーズガイドおよび.NET統合ガイドによると、それは "byte [] GetCardProperty(バイトプロパティ、バイトフラグ)"です。パラメータとして2バイトを受け取り、例えば、バイト配列形式のシリアル番号またはGUID。 私の質問は、シリアル番号を取得して管理されたバイト配列に格納する方法です。任意の助けcの#gt38dtnet.dllからバイト配列を取得します。
[DllImport("gtop11dotnet.dll")]
public static extern byte[] C_GetCardProperty(byte property, byte flags);
public static void Main()
{
byte[] bytes = new byte[12];
bytes = C_GetCardProperty(0x06, 0x00) //Error at this line -> Cannot marshal 'return value': Invalid managed/unmanaged type combination.
}
ありがとう:
は、ここに私の試みです。
はい、これはGemalto独自の機能です。私は[Gemaltoのウェブサイト](http://www.gemalto.com/products/dotnet_card/resources/libraries.html?toggler=0)からダウンロードして、gtop11dotnet.dllをC:\ Program Files \ Gemalto \ DotNetにインストールしましたPKCS11。そのDLLの中には、C関数C_GetCardPropertyがあります。私はそれをDependency Walkerでダブルチェックしました。しかし、関数が返すシリアル番号またはGUIDを取得する方法は? – Almir
申し訳ありません、あなたはそれについてGemaltoに尋ねる必要があります。さらに良いことに、関数を削除するか、Gemalto_GetCardPropertyに名前を変更するように指示してください。PKCS#11を悪用すると、何か良い結果が得られません。 –