0

在我的身份证读取应用程序中,我正在导入一些非托管代码 (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。查看工具tlbimp,它将创建一个包装 DLL,您可以在 ASP.NET 应用程序中引用它。

于 2013-02-15T05:44:30.450 回答