Array
(
)

Erro no comando Sleep quando usa o componente IdIcmpClient

Jaimesk
   - 19 fev 2008

Boa tarde

Estou com um problema no c++ builder 6 com o comando Sleep fica dando erro na compilacao, quando insiro o objeto IdIcmpClient na paleta indy Clients.
o erro e o seguinte:
[C++ Error] PDV01.cpp(675): E2015 Ambiguity between ´_fastcall Idglobal::Sleep(unsigned int)´ and ´__stdcall Sleep(unsigned long)´

e como se esse objeto IdIcmpClient tambem tem uma funcao chamada sleep. Alguem sabe me dizer o que e isso ????

Grato
Jaime


Jaimesk
   - 20 fev 2008

Para ser vcs sentirem o drama cria um novo projeto e crie um buttom e nele coloque apenas o seguinte:

Sleep(100);

e no form va na paleta Indy Clients e insira o objeto IdIcmpClient e depois manda rodar essa aplicacao ai vcs verao o erro.

Grato


Rodc
   - 20 fev 2008

Pior... passei por isto ontem. Estou migrando meus componentes para o C++ Builder 2007 e, como nesta versão não tem o TNMUDP, usei o TIdUDPClient. Ocorreu o mesmo problema.
O que fiz foi chamar o Sleep da seguinte forma:#Código

Idglobal::Sleep()
Porém ele passa a chamar o Sleep da Indy. Não sei como fazer para chamar o Sleep da VCL da Borland. Gostaria de saber também!


Massuda
   - 20 fev 2008

Não mexo com CBuilder, mas a mensagem de erro indica que existem dois Sleep(), um definido pelo Indy em IdGlobal e outro provavelmente do windows, de modo que o compilador não sabe qual dos dois você quer usar, já que ambos tem a mesma assinatura (mesma lista de parametros); isso de chama ambiguidade.

Assumindo que você quer usar o Sleep que não é do Indy, acho que isto deve funcionar...#Código

::Sleep(...seu valor aqui...);
..isso indica ao compilador que você quer usar o Sleep definido no namespace global. Se fosse usar o Sleep do Indy, você escreveria...#Código
IdGlobal::Sleep(....
...o que indica que você quer usar o Sleep do namespace IdGlobal.


Rodc
   - 20 fev 2008

Funcionou perfeitamente! Valeu Massuda.
Mas me diz uma coisa, se as duas funções fossem globais (sem namespace) o faria?


Jaimesk
   - 20 fev 2008

Funfo !
Valeu a forca !