1

我正在尝试从 ASP.net 网络调用 dll 方法。它在 W2003 服务器上运行,但相同的 dll 和相同的 web 在带有 IIS 7.5 的 w2008 服务器 R2 上崩溃。我这样做是为了导入 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 编译,但问题仍然存在。

我要疯了...

请帮忙!

4

1 回答 1

0

我终于找到了线索。这是一个内存位置问题。主要函数返回一个像这样的数组: char retorno[10000];

该函数在 dll 代码中声明为“char*”

通过更改这些行:

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

而不是 return ((char *)retorno)

现在它正在工作。

于 2012-11-27T11:27:29.007 回答