0

ID カード読み取りアプリケーションで、認証用にアンマネージ コード (dll) をインポートしています。この DLL をインポートできません。エラーは発生していませんが、DLL がインポートされておらず、アクセスできません。Web アプリケーションで行っていた場合、Windows 形式で動作しています。出力が得られません。使用方法について、いくつかのアイデアや例を教えてください。これが私のコードです:

 /// <param name="readerNumber">The reader number.</param>
        [DllImport("EIDReader.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
        internal static extern void InitSelectedReaderEx(ManagerData data, int readerNumber);

[DllImport("EIDReader.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
    [return: MarshalAs(UnmanagedType.Bool)]
    internal static extern bool ReadSISCard([In, Out] SISRecord identity);
4

2 に答える 2

3

C#/Winforms が DLL をロードする方法と ASP.NET が動作する方法には違いがあります。

C# winforms は .NET VM で実行され、ASP.NET (.NET VM でも実行されます) は IIS 内でサンドボックス化されます。

最初にdllをメモリにロードしてから、必要なメソッドを呼び出す必要があります。

こちらのチュートリアルを参照してくださいASP.NET を相互運用する方法

于 2013-02-15T05:49:33.240 に答える
0

参照したいライブラリは COM ライブラリですか? その場合は、そのための COM ラッパー DLL を作成する必要があります。ASP.NET アプリケーションで参照できるラッパー DLL を作成するツールtlbimpを確認してください。

于 2013-02-15T05:44:30.450 に答える