0

ASP.net 웹에서 dll 메서드를 호출하려고합니다. 그것은 W2003 서버에 작동하고 있지만, 같은 DLL과 동일한 웹은 dll을 가져 오려면이 같은 일을 IIS 7.5.I'm와 W2008 서버 R2에 충돌한다 : 내가 컴파일 DLL 64 개 비트를 시도Windows 서버 2008에서 Dll 메서드가 호출되지 않습니다.

<DllImport("Cripto.dll")> _ 
     Public Shared Function DesCipher(ByVal uiMode As Integer, ByVal uiLength As  Integer, ByVal szSourceData As String) As String 

End Function 

을 그러나 문제는 여전히 남아 있습니다.

나는 미치겠다 ...

도와주세요!

+0

어떤 종류의 충돌이 표시됩니까? – prprcupofcoffee

+0

그것은 쓰레드 중단 충돌입니다. 이제 새 비어있는 하나의 메서드 DLL을 만들었지 만 여전히 작동하지 않습니다. public 메서드를 호출하면 웹에서 모든 세션 변수를 잃어 버리기 때문에 제어 된 예외가 발생합니다. – Educ

+0

새 메서드의 시그니처 (인수 개수, 인수 형식, 반환 형식)가 동일한 것입니까? – prprcupofcoffee

답변

0

마지막으로 단서를 발견했습니다. 메모리 위치 문제입니다. 주요 함수는 다음과 같은 배열을 리턴합니다. char retorno [10000];

기능이이 라인을 변경하여 "의 char *"

과 DLL 코드에 선언했다 :

 ULONG ulSize = strlen((char*)retorno) + sizeof(char); 
    char* pszReturn = NULL; 
    pszReturn = (char*)::GlobalAlloc(GMEM_FIXED, ulSize); 
    strcpy(pszReturn, (char*)retorno); 
    return pszReturn; 

대신 리턴 ((의 char *) retorno)

지금은의를 일.

관련 문제