在Windows Server 2008上不调用DLL方法

时间:2012-10-31 14:53:49

标签: vb.net dll iis-7.5 windows-server-2008 windows-server-2003

我正在尝试从ASP.net网站调用dll方法。它正在W2003服务器上运行,但同样的dll和同一个网络在使用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编译,但问题仍然存在。

我疯了......

请帮助!

1 个答案:

答案 0 :(得分: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)

现在它正在运作。