Saudações!! Estou fazendo alterações em uma aplicação ISAPI em Delphi (Delphi 6, servidor IIS, banco SQL Server) e estou tendo uns probleminhas com cookies.
O sistema é dividido em 3 módulos, que rodam em 3 DLLs ISAPI separadas. Para armazenar certos dados comuns aos 3 programas, estou armazenando num cookie no usuário (login do usuário, operações que pode fazer no banco, etc.). A function que verifica a "permissão" que o usuário tem para determinada operação na base, em qualquer uma das DLLs principais, roda perfeitamente. // function TWebModule1.PermissaoOperacao (pProg, pOperacao : string): integer; // Retorno: 1 - tem permissão, 2 - não tem permissão, 3 - não tem cookie aberto. O caso é que estou agrupando funções comuns aos 3 módulos em uma DLL em uma quarta (pra facilitar as coisas). Transferindo a function pra outra DLL e fazendo a chamada à função externa em uma das DLLs principais, ocorre Access Violation Na DLL principal // function PermissaoOperacao(pProg, pOperacao : ShortString): integer; stdcall; far; external 'ACHFUNC.DLL' index 1; Na DLL auxiliar, com as funções comuns: // function PermissaoOperacao (pProg, pOperacao : ShortString) : integer; stdcall; (Lá embaixo, no "exports", estou exportando essa função com index 1.) Alguém tem alguma dica? Por acaso uma DLL não-ISAPI não pode acessar os cookies da máquina do usuário? Abraços. -- Tito G. S. de Aguiar Desenvolvimento - T/SPA - PROCEMPA [EMAIL PROTECTED] MSN: [EMAIL PROTECTED] P.S.: segue em anexo a função, pra facilitar. function PermissaoOperacao (pProg, pOperacao : ShortString) : integer; stdcall; var Request : TWebRequest; bAchou : boolean; iAux : integer; sAux, sCookieUser, sFuncao : ShortString; begin if Request.CookieFields.Values[pProg] = '' then Result := 3 else begin bAchou := False; sAux := Request.CookieFields.Values[pProg]; iAux := pos('*',sAux); sCookieUser := copy(sAux, 1, iAux -1); while (iAux < length(sAux)) do begin sAux := copy(sAux, iAux + 1, length(sAux)- iAux); iAux := pos('#',sAux); sFuncao := copy(sAux,1,iAux -1); if (LowerCase(pOperacao) = LowerCase(sFuncao)) then begin bAchou := True; break; end; end; // fim do while if (bAchou = true) then Result := 1 else Result := 2; end; // fim do else end; -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html