Posso fazer no Delphi tudo que se faz em C/C
Olá galera tenho uma duvida:
Consigo fazer no Delphi tudo que é feito em C/C++ ??
ou seja, sou programador Delphi e quero saber se preciso aprender C/C++ ou consigo consigo programar em baixo nivel com Delphi assim como no C/C++ ?
Desculpe se eu estiver falando besteira, mais estou com essa duvida.
até mais !!!
Consigo fazer no Delphi tudo que é feito em C/C++ ??
ou seja, sou programador Delphi e quero saber se preciso aprender C/C++ ou consigo consigo programar em baixo nivel com Delphi assim como no C/C++ ?
Desculpe se eu estiver falando besteira, mais estou com essa duvida.
até mais !!!
Fabiano Góes
Curtidas 0
Respostas
Aroldo Zanela
03/03/2006
Colega,
Sim. O Builder C++ da Borland possui inclusive a VCL e você escreve em C++ e a IDE ´transforma´ para Delphi e compila.
Sim. O Builder C++ da Borland possui inclusive a VCL e você escreve em C++ e a IDE ´transforma´ para Delphi e compila.
GOSTEI 0
Delphi32
03/03/2006
fiquei com uma dúvida:
se a IDE do borland c++ ´transforma´ o código para delphi antes de compilar, porque o tamanho das executáveis finais são diferentes?
t+!
se a IDE do borland c++ ´transforma´ o código para delphi antes de compilar, porque o tamanho das executáveis finais são diferentes?
t+!
GOSTEI 0
Adriano Santos
03/03/2006
Não conheço C/C++ profundamente para afirmar, mas acredito que seja pela quantidade de units que o delphi declara, sei lá...tô chutando, também quero saber.
GOSTEI 0
Fabiano Góes
03/03/2006
Bom, só pra eu entender direito,
mesmo pra programar em ´Builder C++ ´ tenho que conhecer a linguagem C/C++ ? ou não ?
devo estar enganado, mais o ´Builder C++ ´ não é programar C++ usando a IDE Borland ???
Em fim, ao invés de aprender Visual C++ posso aprender Builder C++, sem precisar estudar a linguagem C/C++ antes :?: ???????
mesmo pra programar em ´Builder C++ ´ tenho que conhecer a linguagem C/C++ ? ou não ?
devo estar enganado, mais o ´Builder C++ ´ não é programar C++ usando a IDE Borland ???
Em fim, ao invés de aprender Visual C++ posso aprender Builder C++, sem precisar estudar a linguagem C/C++ antes :?: ???????
GOSTEI 0
Massuda
03/03/2006
[quote:872576247e=´Fabiano Góes´]mesmo pra programar em ´Builder C++ ´ tenho que conhecer a linguagem C/C++ ?[/quote:872576247e]Sim.
[quote:872576247e=´Fabiano Góes´]o ´Builder C++ ´ não é programar C++ usando a IDE Borland ??? [/quote:872576247e]Sim.
[quote:872576247e=´Fabiano Góes´]posso aprender Builder C++, sem precisar estudar a linguagem C/C++ antes ?[/quote:872576247e]Não.
Posso estar enganado, mas com o C++Builder, vem um compilador C/C++ e outro Delphi/Pascal. Código escrito em C/C++ é compilado pelo compilador C/C++ e toda a parte escrita usando Delphi usa o compilador Delphi/Pascal. O que permite usar as duas linguagens juntas é que os compiladores são feitos para gerar código compatível entre si.
Note que misturar C/C++ com Delphi/Pascal sempre foi possível desde os tempos do Turbo C e do Turbo Pascal. Um exemplo é a implementação de JPEG e ZLib que vem com o Delphi.
Com relação a dúvida inicial...
[quote:872576247e=´Fabiano Góes´]o ´Builder C++ ´ não é programar C++ usando a IDE Borland ??? [/quote:872576247e]Sim.
[quote:872576247e=´Fabiano Góes´]posso aprender Builder C++, sem precisar estudar a linguagem C/C++ antes ?[/quote:872576247e]Não.
Posso estar enganado, mas com o C++Builder, vem um compilador C/C++ e outro Delphi/Pascal. Código escrito em C/C++ é compilado pelo compilador C/C++ e toda a parte escrita usando Delphi usa o compilador Delphi/Pascal. O que permite usar as duas linguagens juntas é que os compiladores são feitos para gerar código compatível entre si.
Note que misturar C/C++ com Delphi/Pascal sempre foi possível desde os tempos do Turbo C e do Turbo Pascal. Um exemplo é a implementação de JPEG e ZLib que vem com o Delphi.
Com relação a dúvida inicial...
Consigo fazer no Delphi tudo que é feito em C/C++ ??
Depende do que você chama de ´tudo´. Existem coisas que podem ser feitas apenas em C/C++. Um exemplo são drivers do Windows para uso pelo kernel do SO.GOSTEI 0
Aroldo Zanela
03/03/2006
[quote:e2adb767e8=´Aroldo Zanela´]Colega,
Sim. O Builder C++ da Borland possui inclusive a VCL e você escreve em C++ e a IDE ´transforma´ para Delphi e compila.[/quote:e2adb767e8]
Colegas,
Desculpem, esta informação está equivocada. Acabei de ligar na Bluestar (Partner da Borland em Brasília) para confirmar e realmente eu havia entendido errado esta característica da VCL no Builder C++, pois ele possui um compilador específico para C++.
Lamento!
Sim. O Builder C++ da Borland possui inclusive a VCL e você escreve em C++ e a IDE ´transforma´ para Delphi e compila.[/quote:e2adb767e8]
Colegas,
Desculpem, esta informação está equivocada. Acabei de ligar na Bluestar (Partner da Borland em Brasília) para confirmar e realmente eu havia entendido errado esta característica da VCL no Builder C++, pois ele possui um compilador específico para C++.
Lamento!
GOSTEI 0
Khundalini
03/03/2006
A título de esclarecimento, não tem como programar puramente em baixo nível em Delphi ou em C++Builder. Até onde me consta, isso só pode ser possível em Assembly e na construção de drivers padrão WDM (Windows Driver Model) em Visual C++ junto com o DDK (Driver Development Kit) apropriado à plataforma operacional visada (Win9x, Win2000, WinNT, Win2003, WinXP, etc.).
Outro ponto a ser esclarecido é que nos sistemas operacionais Windows baseados na plataforma NT (NT/XP/2000/2003), existem níveis de acesso à recursos de baixo nível do computador. O nível mais privilegiado é o nível zero (conhecido como ring0), e o nível mais comum para aplicações compiladas em Delphi ou Visual Basic, por exemplo, é o nível 3 (ring3). Portanto, o compilador do Delphi não é apropriado para gerar drivers, pq ele só gera executáveis para serem executados pelo sistema operacional em nível de acesso ring3.
Sds,
Rubem Rocha
Manaus, AM
Outro ponto a ser esclarecido é que nos sistemas operacionais Windows baseados na plataforma NT (NT/XP/2000/2003), existem níveis de acesso à recursos de baixo nível do computador. O nível mais privilegiado é o nível zero (conhecido como ring0), e o nível mais comum para aplicações compiladas em Delphi ou Visual Basic, por exemplo, é o nível 3 (ring3). Portanto, o compilador do Delphi não é apropriado para gerar drivers, pq ele só gera executáveis para serem executados pelo sistema operacional em nível de acesso ring3.
Sds,
Rubem Rocha
Manaus, AM
GOSTEI 0
Nildo
03/03/2006
A título de esclarecimento, não tem como programar puramente em baixo nível em Delphi ou em C++Builder. Até onde me consta, isso só pode ser possível em Assembly e na construção de drivers padrão WDM (Windows Driver Model) em Visual C++ junto com o DDK (Driver Development Kit) apropriado à plataforma operacional visada (Win9x, Win2000, WinNT, Win2003, WinXP, etc.).
Tem como programar sim em baixo nível usando Delphi ou C++ Builder. Não é pelo fato de um driver ter acesso ao Ring0 que ele é mais baixo nível que um recurso que acessa o Ring3. Na construção da minha biblioteca BmsApiHook por exemplo, eu consegui obter acesso ao Ring0 para poder escrever dentro do Kernel do win98 para quando hookamos APIs das DLLs kernel32.dll, user32.dll e gdi32.dll nos win9x.
A diferença é que o SO da acesso (entre aspas) ao ring0 apenas quando o código está dentro de um Driver, isso não o torna mais baixo nível que uma linguagem convencional como o Delphi ou C++.
Outro ponto a ser esclarecido é que nos sistemas operacionais Windows baseados na plataforma NT (NT/XP/2000/2003), existem níveis de acesso à recursos de baixo nível do computador. O nível mais privilegiado é o nível zero (conhecido como ring0), e o nível mais comum para aplicações compiladas em Delphi ou Visual Basic, por exemplo, é o nível 3 (ring3).
Quem define os níveis de acesso aos recursos são os processadores. O Windows apenas gerencia esses níveis porque o sistema operacional roda no Ring0. Então é o SO que impõe as regras de acesso apenas a fim de evitar erros no processamento dos códigos. Esse controle não existe somente nas plataformas baseadas em NT. Os níveis de acesso também são estabelecidos nas versões 9x do Windows.
Portanto, o compilador do Delphi não é apropriado para gerar drivers, pq ele só gera executáveis para serem executados pelo sistema operacional em nível de acesso ring3.
Na verdade o compilador do Delphi não gera drivers por que eles não querem, porque o compilador não foi preparado para gerar essa estrutura diferente que é a estrutura de um Driver. Diferente do compilador do C++ que pode gerar um driver.
GOSTEI 0