We have a problem: Biblioteca <windows.h> no linux.

645 views
Skip to first unread message

Walker

unread,
Jul 20, 2008, 10:28:11 PM7/20/08
to ccppbrasil
Olá pessoal. Estou aprendendo C++ e praticando com o livro da
Victorine Viviane Mizrahi.
Existe um programa mostrando herança utilizando a biblioteca
<windows.h>

O GCC não conhece o arquivo, por que será??? ;-)

Gostaria de aproveitar o conhecimento de vcs e ver o que posso fazer,
quais as alternativas?
Pelo que pude descobrir (graças ao cache do Google, o viva o linux
está fora do ar agora), não há um substituto, e fazer funcionar no
braço é meio complicado pra mim...

Cache do google:
http://www.google.com.br/url?sa=t&ct=clnk&cd=3&url=http%3A%2F%2F209.85.215.104%2Fsearch%3Fq%3Dcache%3ASQfJ_SCSvdEJ%3Awww.vivaolinux.com.br%2Fcomunidades%2FverTopico.php%253Fcodigo%253D13%2526codtopico%253D21248%2B%2522windows.h%2522%2Blinux%26hl%3Dpt-BR%26ct%3Dclnk%26cd%3D3%26gl%3Dbr&ei=ufODSPDeIoye8gTo-fTTCw&usg=AFQjCNGCMUlel7hPjgjSQgbPzOTxDhu-Eg&sig2=gSJm0lqpO_00J9AKxzqS3w

O objetivo é obter a posição do cursor...
Sei que o grupo não é nenhum tira dúvidas, mas sou so um cara com sede
de conhecimento... :-)

Segue o código.

/**
* Treinamento em Linguagem C++
* Viviane Victorine Mizrahi **
* MODULO 2 - CAPÍTULO 10 - Página 87
* **** Herança ****
*/

#include <iostream>
#include <windows.h> // Nao está funcionando...

// Erro: 01_Janela.cpp:15:47: erro: windows: Arquivo ou diretório
inexistente

using namespace std;

inline int maximo (int x, int y)
{
return (x > y ? x:y);
}

inline int minimo (int x, int y)
{
return (x < y ? x:y);
}

void poscur (int col, int lin) // Posicao cursor
{
HANDLE hConsole = GetStdHandel (STD_OUTPUT_HANDLE );

if ( INVALID_HANDLE_VALUE != hConsole )
{
COORD pos = {col, lin};
SetConsoleCursorPosition( hConsole, pos);
}
}

class Janela // Classe base.
{ ...
...

Felipe Ferreri Tonello

unread,
Jul 20, 2008, 11:39:01 PM7/20/08
to ccppb...@googlegroups.com
Olá..
Entao.. o windows.h é usada na compilaçao se programas no Windows. O GCC nao tem suporte à isso.

2008/7/20 Walker <walke...@gmail.com>:

Vinicius Jarina

unread,
Jul 21, 2008, 7:53:32 AM7/21/08
to ccppb...@googlegroups.com
Olá amigo.

O correto em:

HANDLE hConsole = GetStdHandel (STD_OUTPUT_HANDLE );

Não seria: GetStdHandle ? (http://msdn.microsoft.com/en-us/library/ms683231(VS.85).aspx)

E outro ponto, não sei exatamente qual é p foco do seu estudo e da sua aplicação, mas se você está no windows e pode instalar o Visual C++ Express, acredito que seja um ambiente bem completo (com headers e libraries do Platform SDK).

E quanto a seu livro de estudo (nada pessoal contra a Viviane ou aos livros dela), mas acredito que há livros melhores. Eu particularmente sugeriria o do Ivon Horton : ISBN: 0764571974  /  ISBN-13: 9780764571978. Que cobre bastante coisa, desde o "Hello World" (Mas isso já é opinião pessoal)

Bons estudos.

Vinicius Jarina (http://viniciusjarina.googlepages.com)


2008/7/21 Felipe Ferreri Tonello <felipe....@gmail.com>:

marcos machado

unread,
Jul 21, 2008, 8:31:00 AM7/21/08
to ccppb...@googlegroups.com
não entendi.. vc está usando o gcc no windows ou linux?

se for linux use outro exemplo para herança, isto porque você vai ter que refazer o código para pegar a posição do mouse. Lembro que no linux existem várias formas de obter essa informação, pode-se usar a lib do X, po exemplo...



2008/7/21 Vinicius Jarina <viniciu...@gmail.com>:

Guedes

unread,
Jul 21, 2008, 11:22:18 AM7/21/08
to ccppb...@googlegroups.com

Em Dom, 2008-07-20 às 19:28 -0700, Walker escreveu:
> Olá pessoal. Estou aprendendo C++ e praticando com o livro da
> Victorine Viviane Mizrahi.
> Existe um programa mostrando herança utilizando a biblioteca
> <windows.h>
>
> O GCC não conhece o arquivo, por que será??? ;-)
Você está usando Windows ou Linux?
Se a resposta for 'Linux', esqueça, não existe 'windows.h'. Você deve
utilizar outras bibliotecas de bugigangas (widgets), tais como, Gtkmm,
QT, WxWindow entre outras multi-plataformas.

Guedes.

Walker

unread,
Jul 21, 2008, 12:13:18 PM7/21/08
to ccppbrasil
Vinicius: Verdade, eh erro de digitação meu. Troquei o 'H' e o 'L'.
Obrigado.

Marcos: Estou no linux: Ubuntu. Ano passado aprendemos C, este ano é C+
+, gostei bastante de utilizar o gcc com o Debian.
O programa desenha uma janela, e pelo que entendi, é a posição do
cursor que pisca (e que não sei o nome), não o mouse.

Guedes: Linux, já estava suspeitando disso. Muita gambiarra não dá...

Falha nossa, estou usando o G++. gcc é pro C. Eh o costume...

Acho que a solução será o que Vinicius sugeriu: estudar no Windows com
o Visual C++.

Obrigado a todos, foi bem instrutivo e evitou um trabalhão, eu ia
quebrar cabeça um bom com isso... hehehe.

Walker

unread,
Jul 21, 2008, 5:29:22 PM7/21/08
to ccppbrasil
Estou estudando no Linux, Ubuntu.
Eu disse gcc, desculpem, é g++ (estudei C - e gostei - ano passado, e
as vezes troco as bolas) !!!
O livro da Viviane é recomendação do professor, mas ele mesmo disse
que tem coisa melhor por aí...

Vinicius, vc está correto, eu que errei a digitação.

Acho que o meu caso será estudar pelo windows mesmo, como disse o
Vinicius.


Obrigado a todos, esclareceram alguns pontos pra mim. Provavelmente eu
ia ficar quebrando cabeça pra fazer funcionar o *windows.h* e ia
conseguir so perder tempo...

Gianni Rossi

unread,
Jul 21, 2008, 8:10:28 PM7/21/08
to ccppb...@googlegroups.com
On Monday 21 July 2008 13:13:18 Walker wrote:
[snip]

> Falha nossa, estou usando o G++. gcc é pro C. Eh o costume...

Na verdade o 'comando' gcc compila tudo: C, C++, Objc, etc... Olhe o man dele,
lá diz que ele pega a linguagem pela extensão do arquivo.

Ivan

unread,
Jul 22, 2008, 9:53:27 AM7/22/08
to ccppbrasil
Você pode fazer cross-compiling (MingW) e rodar o aplicativo usando o
Wine...
Eu já fiz muito isso no passado, inclusive para desenvolvimento de
device drivers.

Em Debian/Ubuntu:
$ sudo apt-get install mingw32 mingw32-binutils mingw32-runtime


On 21 jul, 00:39, "Felipe Ferreri Tonello" <felipe.tone...@gmail.com>
wrote:
> Olá..
> Entao.. o windows.h é usada na compilaçao se programas no Windows. O GCC nao
> tem suporte à isso.
>
> 2008/7/20 Walker <walker.u...@gmail.com>:
>
>
>
> > Olá pessoal. Estou aprendendo C++ e praticando com o livro da
> > Victorine Viviane Mizrahi.
> > Existe um programa mostrando herança utilizando a biblioteca
> > <windows.h>
>
> > O GCC não conhece o arquivo, por que será??? ;-)
>
> > Gostaria de aproveitar o conhecimento de vcs e ver o que posso fazer,
> > quais as alternativas?
> > Pelo que pude descobrir (graças ao cache do Google, o viva o linux
> > está fora do ar agora), não há um substituto, e fazer funcionar no
> > braço é meio complicado pra mim...
>
> > Cache do google:
>
> >http://www.google.com.br/url?sa=t&ct=clnk&cd=3&url=http%3A%2F%2F209.8...

Blabos de Blebe

unread,
Jul 22, 2008, 5:39:07 PM7/22/08
to ccppb...@googlegroups.com
Cara, na boa,

De acordo coma sua pergunta inicial, vc está estudando herança certo?
Herança é um conceito que incepende de sistema operacional ou
cabeçalhos externos.
Você não precisa da windows.h, ou da unistd.h para estudar herança.
Você precisa dela para repetir este exemplo específico. Cuidado para
não misturar as coisas.

Vai uma sugestão, e nesse caso é so uma sugestão (você deve tentar o
que for mais simples do seu ponto de vista):

Que tal criar você mesmo uma classe Base e uma classe Derivada, com
seus métodos públicos, protegidos e privados, e estude como se
comportam ao serem invocados.

Eu particularmente recomendo o livro do Bjarne Stroustrup.

Só fiquei meio assustado de ver você falando de herança, se enrolando
com a windows.h, o gcc, e tentando resolver com o visual studio.
Uma coisa não tem nada a ver com a outra (do meu ponto de vista). ;)

Quando eu estava no curso técnico, estudando java, tinha um professor
que parecia que não sabia separar o JBuilder (IDE), do Java
(linguagem), e soltou a pérola:

"Se você não usar o JBuilder, então você não vai estar programando em
Java oficial".

Eu quase acreditei, mas depois que eu digitei o hello world em java,
no kate, gerei o .class com o javac e rodei com o java hello, eu vi
que as coisas em gral, são mais simples do que parecem.

Bom, é só uma opinião.

Abraços



2008/7/22 Ivan <hor...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages