pedrotuga Posted April 30, 2012 at 10:33 PM Report #452390 Posted April 30, 2012 at 10:33 PM 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?
pmg Posted April 30, 2012 at 10:43 PM Report #452392 Posted April 30, 2012 at 10:43 PM 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!
pedrotuga Posted April 30, 2012 at 10:52 PM Author Report #452396 Posted April 30, 2012 at 10:52 PM 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?
pikax Posted April 30, 2012 at 10:58 PM Report #452397 Posted April 30, 2012 at 10:58 PM 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."
pmg Posted April 30, 2012 at 10:58 PM Report #452398 Posted April 30, 2012 at 10:58 PM 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!
pedrotuga Posted April 30, 2012 at 11:15 PM Author Report #452402 Posted April 30, 2012 at 11:15 PM @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)?
mjamado Posted April 30, 2012 at 11:44 PM Report #452407 Posted April 30, 2012 at 11:44 PM @pikaxQueria evitar QT e GTK, o wxwidgets tem um track record francamente mais convincente. What? 😄 Só podes estar a brincar... http://en.wikipedia.org/wiki/Category:Software_that_uses_Qt "Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.
pmg Posted May 1, 2012 at 09:14 AM Report #452425 Posted May 1, 2012 at 09:14 AM 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!
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now