1

ASP.net Web から 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 に答える