2013-02-15 1 views
0

내 ID 카드 읽기 응용 프로그램에서 인증을 위해 관리되지 않는 코드 (dll)를 가져 오려고합니다. 이 DLL을 가져올 수 없습니다. DLL을 가져 오지 못하고 액세스 할 수 없습니다. 그것은 웹 응용 프로그램에서 완료되었을 때 Windows 양식에서 작동합니다. 나는 출력을 얻지 못하고있다. 사용법에 대한 아이디어 나 예제가 있습니까? 여기 내 코드 :ASP.NET 웹 사이트에서 비 관리 코드를 호출 할 수 있습니까?

/// <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); 
+0

대답은 '예 자습서를 볼 수 있지만, 당신은 당신의 문제가 무엇인지 파악하고 (예외 타입/텍스트, ...) –

+0

가하는 질문에이 정보를 추가해야 더 나은 아무것도 얻을 수 귀하의 asp.net 웹 사이트 dll을 참조하십시오? –

+0

아니 켓, 예 그렇습니다. – Muthuram

답변

0

COM 라이브러리를 참조 할 라이브러리가 있습니까? 그렇다면 COM 래퍼 DLL을 만들어야합니다. 도구 tlbimp을 확인하면 ASP.NET 응용 프로그램에서 참조 할 수있는 래퍼 DLL이 만들어집니다.

3

C#/Winforms가 DLL을로드하는 방법과 ASP.NET 작동 방식간에 차이가 있습니다.

Winforms는 .NET VM에서 실행되며 ASP.NET (.NET VM에서도 실행 됨)은 IIS 내에서 샌드 박싱됩니다.

먼저 로드 dll을 메모리에 넣은 다음 원하는 방법을 호출해야합니다.

여기에 How to Interop ASP.NET

+0

+1. 손쉬운 네이티브 DLL을로드하기위한 좋은 링크/조언. Winforms와 ASP.Net 비교에 약간의 견해가 있습니다 : Winforms와 ASP.Net 사이에는 DLL로드에 차이가 없지만 WinForms 기본 경로 (실행 파일 옆)의 경우 보통 네이티브 DLL이로드 될 것입니다. 사용자 지정 네이티브 이미지가 포함되어 있지만 ASP.Net의 경우에는 Managed DLL의 기본 위치는 기본적으로 검색되지 않습니다. –

+0

Aniket, Alexei 기본적으로 DllImport는 응용 프로그램 경로 또는 시스템 Win32 만 참조합니다. – Muthuram

+0

@Muthuram for Winforms, 기본 검색 디렉토리는 current32이며 그 다음은 system32입니다. asp.net의 경우 '\ system32 \ inetsrv'입니다. –

관련 문제