Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2775 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde pessoal,  estou tentando compilar minha aplicação em x64 mas me retorna um erro em uma função que não dá erro no x86:

CertContext.Get_CertContext(Integer(PCertContext));

dá esse erro:

[dcc64 Error] uWebServiceClass.pas(153): E2197 Constant object cannot be passed as var parameter

como posso resolver?

 

Se alguém quiser saber o contexto do uso, é esse: 

procedure TWebService.OnBeforePost(const HTTPReqResp: THTTPReqResp;
  Data: Pointer);
var
  Cert         : ICertificate2;
  CertContext  : ICertContext;
  PCertContext : Pointer;
  ContentHeader: string;
begin
  Cert := GetCertificate(xCert);
  CertContext :=  Cert as ICertContext;
  CertContext.Get_CertContext(Integer(PCertContext));    //PESQUISA PARA 64BIT

  if not InternetSetOption(Data, 84, PCertContext,SizeOf(CERT_CONTEXT)) then
  begin
    //showmessage('Certificado não lido. Tente novamente!');
  end;


  if (pos('SCERECEPCAORFB',UpperCase(HTTPReqResp.URL)) <= 0) and
     (pos('SCECONSULTARFB',UpperCase(HTTPReqResp.URL)) <= 0) then
   begin
     ContentHeader := Format(ContentTypeTemplate, ['application/soap+xml; charset=utf-8']);
     HttpAddRequestHeaders(Data, PChar(ContentHeader), Length(ContentHeader), HTTP_ADDREQ_FLAG_REPLACE);
   end;
  HTTPReqResp.CheckContentType;

end;

 

  • Este tópico foi criado há 2775 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.