Jump to content

Recommended Posts

Posted

Tenho um protótipo funcional de uma aplicação de desktop feita em java/swing. Apesar de já estar a funcionalidade básica implementada, a maior quantidade de trabalho consisitrá em deixar a aplicação bem polida com todos os pormenores no lugar.

Pelo que ainda vou a tempo de mudar de tecnologia.

Preciso de interagir com o sistema operativo anfitrião a um nível mais ou menos baixo, o que em java, dado correr numa VM, só é possível utilizando hacks meios manhosos. Estava a pensar portar a aplicação para C ou C++.

Fazer GUIs em swing com o matisse (netbeans) é um tirinho e há boa documentação e muitos exemplos online. O CodeBlocks vem com dois (?) utilitários de deseho de forms compatíveis com a biblioteca wxwidgets, sinto-me tentado a experimentar. Como é que comparam com o matisse no nebeans?

Outras dúvidas que tenho são relacionadas com código cross-platform. Dava-me jeito que a aplicação corresse em windows e linux. Não estou muito por dentro disto. Eu quando programei em C++ na altura usava o visual studio 6 e todas as bibliotecas eram escritas pela microsoft. Calculo que se quiser escrever uma aplicação cross-platform tenha que usar praí a libc? Isso não tem uma carrada de limitaçoes no windows?

Posted

Outras dúvidas que tenho são relacionadas com código cross-platform.

Se conseguires separar a parte de calculo da parte de apresentacao nao e dificil.

Fazes a parte de calculo (comum) em C Standard (com libc), e fazes dois (ou mais) interfaces com o utilizador, um para cada Sistema Operativo destino.

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

Se conseguires separar a parte de calculo da parte de apresentacao nao e dificil.

Fazes a parte de calculo (comum) em C Standard (com libc), e fazes dois (ou mais) interfaces com o utilizador, um para cada Sistema Operativo destino.

Não estava à espera dessa resposta. O wxwidgets é supostamente cross platform. A minha questão é mesmo em relação à libc. Por exemplo, se eu precisar de abrir iniciar vários processos, duvido que isso funcione no windows... ou funciona? (Não sei)

Ou se precisar de registar um atalho do teclado ao nível do sistema operativo, há forma de fazer isso sem ter que escrever doas porções de código separadas?

E mesmo a compilar, não tenho muita experiência com autotools e afins. Como é que se separa o código? Com directivas espalhadas pelo código e flags de compilação?

Posted

Se queres cross-platform, intuitivo e com boa documentacao, penso que o ideal seria o QTCreator

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Posted

abrir iniciar vários processos

registar um atalho do teclado

Estes dois procedimentos nao sao parte do Standard C. O primeiro faz parte do Standard POSIX (que supostamente o Windows tambem aceita).

Quanto a compilacao, eu acho que o mais pratico é separar em ficheiros source diferentes, em vez das directivas espalhadas pelo codigo e flags de compilacao. Fazes um makefile para cada Sistema Operativo e incluis nos makefiles os ficheiros respectivos. Podes até mete-los em directorias especificas

project/
    config/
    src/
        windows/
        mac/
        unix/
        android/

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Posted

@pikax

Queria evitar QT e GTK, o wxwidgets tem um track record francamente mais convincente.

@pmg

Estes dois procedimentos nao sao parte do Standard C. O primeiro faz parte do Standard POSIX (que supostamente o Windows tambem aceita).

É deste tipo de informação que estou à procura. Quando de fala em C, a maior parte das pessoas inclui standards que cobrem bibliotecas e implementações de funcionalidades de alto nível. Em bom rigor, isto não é parte da linguagem em si, e isto deia-me confuso. Tenho dificuldade em perceber o que é que está implementado para cada sistema operativo.

Invertendo a questão: quais são os casos típicos de código que não compile nos dois ambientes (unix e windows)?

Posted

O Standard C99 apenas define funcoes declaradas nos headers: <float.h>, <iso646.h>, <limits.h>, <stdarg.h>, <stdbool.h>, <stddef.h>, e <stdint.h> para implementacoes "free-standing" acrescentando os headers <assert.h>, <complex.h>, <ctype.h>, <errno.h>, <fenv.h>, <inttypes.h>, <locale.h>, <math.h>, <setjmp.h>, <signal.h>, <stdio.h>, <stdlib.h>, <string.h>, <tgmath.h>, <time.h>, <wchar.h>, e <wctype.h> para implementacoes "hosted".

Nota que uma implementacao pode declarar e definir mais funcoes que as definidas pelo Standard; por exemplo, a funcao strdup() esta normalmente declarada no header <string.h> e existe na biblioteca libc ... mas nao foi definida pelo Standard (nem pelo POSIX).

Para as definicoes POSIX eu uso o The Open Group Base Specifications Issue 7. Lendo com atencao a descricao das funcoes neste site, facilmente se conclui se uma determinada funcao pertence ao Standard restrito ou ao POSIX.

Dois headers que pertencem ao POSIX mas nao ao Standard sao, por exemplo, <regex.h> e <sys/socket.h>.

Além do POSIX (especialmente interface com o utilizador: ncurses, gui, ...) é o "salve-se quem puder" 😄

What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.