Começando a programar em c , duvidas e curiosidades

20/10/2006

0

Olá amigos. Estou começando a programar em c++ como hobby, pra aprender. Estou usando o borland c++ builder express (o novo que é gratis).

Fiz um pequeno mediaplayer com playlist em interbase+dbxpress e o componenete Tmediaplayer, demorei 2 dias pra me acostumar, e isso me despertou umas curiosidades. Como eu programo em Delphi a muito tempo, por mais que eu queira, é inevitavel surgirem comparações, embora esse não seja meu objetivo.

curiosidades:
1) Tanto o Delphi como o C++ Builder tem a VCL, mas eu li num outro tópico que a VCL foi toda escrita em object pascal e que o c++ builder acessa ela. A VCL do c++ builder não foi escrita em c++? como poderia ser escrita em object pascal ???

2) Eu conheço o básico de c/c++ que aprendi na escola, embora na escola eu tenha treinado com o compilador turbo c++ 3.0 que tambem é da borland e não é de c, é c++. O fato de o c++ ser uma evolução do c significa que ele suporta os comandos/funções antigos do c? ou c e c++ são duas linguagens completamente diferentes? posso usar compilador de c++ pra fazer programas estritamente em c?

3) para acessar ou exibir num showmessage um item de uma lista eu usei:
FileListBox1->Items->operator [](j)

só consegui fazer assim por causa da ajuda do ´code completion´, se não eu estaria até hoje batendo cabeça. No delphi eu faria assim:
FileListBox1.Items[j]

O que é e como usa o tal do operator que eu nunca vi isso em nenhum livro de C/c++ que eu tenha visto? tá certo o jeito que eu fiz? tem algum jeito mais parecido com Delphi?

4) Ao rodar o programa dum micro sem o borland c++ builder instalado, ele pediu a cc3270.dll. Tem como ele não pedir essa dll?

Valew pela ajuda!


Vitor Rubio

Vitor Rubio

Responder

Posts

23/10/2006

Rodc

[quote:4c8b09e667=´vitor^_^´]1) Tanto o Delphi como o C++ Builder tem a VCL, mas eu li num outro tópico que a VCL foi toda escrita em object pascal e que o c++ builder acessa ela. A VCL do c++ builder não foi escrita em c++? como poderia ser escrita em object pascal ???[/quote:4c8b09e667]
A VCL do C++ Builder é em pascal. Acredite!!! Tem embutido no BCB um compilador de pascal. Quando você vai fazer um novo componente em BCB, você pode fazer o componente tanto em C++ como em Pascal. Ele compila os dois. Possivelmente a Borland ficou com preguiça de refazer todo o código da VCL para C++.
[quote:4c8b09e667=´vitor^_^´]2) O fato de o c++ ser uma evolução do c significa que ele suporta os comandos/funções antigos do c? ou c e c++ são duas linguagens completamente diferentes? posso usar compilador de c++ pra fazer programas estritamente em c?
[/quote:4c8b09e667]
Os comandos de C continuam sendo aceitos em C++. Mas é claro que em uma aplicação visual você não vai fazer um GetCh(), vai usar um InputBox(). E nem em uma aplicação console (DOS) vai fazer um ShowMessage(), vai usar o printf().
Quando vai criar uma nova aplicação console o BCB lhe pergunta se você quer fazer uma aplicação em C Ansi ou em C++.
[quote:4c8b09e667=´vitor^_^´]3) para acessar ou exibir num showmessage um item de uma lista eu usei:
FileListBox1->Items->operator [](j)

só consegui fazer assim por causa da ajuda do ´code completion´, se não eu estaria até hoje batendo cabeça. No delphi eu faria assim:
FileListBox1.Items[j]

O que é e como usa o tal do operator que eu nunca vi isso em nenhum livro de C/c++ que eu tenha visto? tá certo o jeito que eu fiz? tem algum jeito mais parecido com Delphi?[/quote:4c8b09e667]
O comando certo para pegar o texto de um item no listbox é assim:
FileListBox1->Items->Strings[j];

Se não me engano, no Delphi também é assim! A forma que você fez também funciona. Na verdade, o evento Strings[j] chama o método que você usou.
[quote:4c8b09e667=´vitor^_^´]4) Ao rodar o programa dum micro sem o borland c++ builder instalado, ele pediu a cc3270.dll. Tem como ele não pedir essa dll?[/quote:4c8b09e667]
No Delphi o executável já sai pronto para enviar para o cliente. No C++ não! Para enviar ao cliente você precisa acessar a guia ´Compiler´ das opções do projeto e clicar no botão ´Release´. E na guia ´Packages´ desmarque a opção ´Build with run time packages´. Vale lembrar que com isto, você não conseguirá debugar o programa.


Responder

24/10/2006

Vitor Rubio

Legal, não sabia de nada disso ^^

Isso quer dizer que eu posso pegar uma classe feita em pascal e criar um descendente pra ela em c++ e vice versa?

quanto ao compilador, bom, na pasta Borland\BDS\4.0\Bin do c++ builder 2006 tem o programa bcc32.exe que eu acredito que seja o compildor de C++. Mas não tem um dcc32.exe igual no delphi. Isso quer dizer que o proprio bcc32.exe compila pascal internamente?


Responder

24/10/2006

Rodc

Nunca tentei implementar apenas uma classe do Pascal no C++. Sempre uso as classes como componentes e o próprio BCB se responsabiliza em criar o vínculo, que é o arquivo .hpp (Um Header para o arquivo pascal). Talvêz se você criar este arquivo na mão vai funcionar. Quando você usar um componente feito em Pascal você não faz o include da DCU ou do PAS, você faz include do HPP dele.

Usar C++ do Delphi eu não sei se é possível. Talvêz neste nova versão que os dois estão unidos em apenas uma IDE funcione. Mas esta eu passo para os universitários...


Responder

24/10/2006

Vitor Rubio

e o que quer dizer a palavra reservada __fastcall?


Responder

24/10/2006

Rodc

Não entendo totalmente o que __fastcall faz, mas pelo que entendi ele faz a passagem de parâmetros ficar mais rápida. Ele fala para o sistema deixar os três primeiros parâmetros da função na cache do processador, para a próxima vêz que for chamado o acesso ser mais rápido. Acho que é isso!
Lembrei agora de um site que explica BCB bem legal... www.dicasbcb.com.br. Não tira as dúvidas mais obscuras mas tem um passo-a-passo bem legal de ler (e aprender). Mas pode continuar perguntando que o que eu souber eu compartilho.
Abraços,


Responder

13/12/2007

Docdoc

Pena eu pegar essa discussão já depois de uma ano mas se alguem for ver isso só uma curiosidade:

No delphi as classes são criadas de forma distinta das de C++, tem a ver com a tabela de funções virtuais, mas tá claro que vc poderá usar as classes descendentes de TObject em C++ da Borland, o que não significa o mesmo para outro compilador C++.


Responder

14/12/2007

Massuda

O CBuilder é um compilador que usa uma versão ligeiramente modificada da linguagem C/C++ para poder acomodar a VCL feita em Object Pascal. Sei que tem limitações (não lembro agora) no que pode ser feito no Delphi e usado no CBuilder e vice-versa, por isso certos componentes VCL acabam tendo versões próprias para Delphi e CBuilder.


Responder

14/12/2007

Vitor Rubio

Eu acho que a dúvida do colega, que é muito interessante, é a seguinte:

1) Para quem está acostumado com delphi, encontrará um ambiiente familiar no c++ builder, não no que ediz respeito à sintaxe e semanntica da linguagem, mas a semelhança está sim nos nomes de classees, bibliotecas e funcoes/métodos

2) Creio que tudo o que você faria num compilador c++ pra windows 32 de uma empresa concorrente, tipo o visual c++, você também poderia fazer/compilar em borland c++, desde que só usasse código c++ nativo e nenhuma biblioteca de terceiros (a não ser que sejam suas biblioptecas pessoais)


Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar