我正在尝试从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编译,但问题仍然存在。
我疯了......
请帮助!
答案 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)
现在它正在运作。