2012-10-31 18 views
0

我試圖從一個ASP.net網站調用dll方法。它的工作一個W2003服務器上,但同一個DLL和相同的網絡當機w2008服務器R2與IIS 7.5.I'm做這樣的導入DLL:在Windows Server 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 

我已經嘗試了64位的DLL編譯但問題依然存在。

我要瘋了...

請幫忙!

+0

你看到了什麼樣的撞車? – prprcupofcoffee

+0

這是一個線程中止崩潰。現在我創建了一個新的空方法DLL,但它仍然無法工作。當我調用公共方法時,Web會引發一個受控異常,因爲它會丟失所有會話變量¿¿¿¿? – Educ

+0

新方法是否具有與此相同的簽名(參數計數,參數類型,返回類型)? – prprcupofcoffee

回答

0

最後我找到了線索。 這是一個內存位置問題。主要功能是像這樣返回一個數組: char retorno [10000];

功能被宣佈在DLL的代碼爲 「字符*」

通過改變這些行:

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

,而不是 回報((字符*)RETORNO)

現在是加工。

相關問題