será error del compilador?

Iniciado por engel lex, 1 Septiembre 2010, 07:31 AM

0 Miembros y 3 Visitantes están viendo este tema.

engel lex

buenas, estoy haciendo un programita en c++ para que me haga lineas "al aire"

el asunto es que este es mi código

#include <windows.h>
#include <WinGdi.h>

int main(){
HDC hDC;
hDC = CreateDC("DISPLAY", NULL, NULL, NULL);
if (hDC) {
    TextOut(hDC, 0, 0, "Hello world!", 12);
    DeleteDC(hDC);
}
}


el compilador simplemente dice "souce file not compiled" no me da ningún error, de hecho devuelve el "done" típico que no hay problemas

he intentado en vez de CreateDC usar GetDC(0) (para tomar el escritorio)

los metodos de getdc y create dc no compilan... el resto de los programas que he hecho si...
estoy usando Dev-C++ 4.9.9.2

no entiendo a que se debe este error
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

[L]ord [R]NA

Algunas veces me solia pasar... trata de reiniciar Dev-C++ asi se me solucionaba.

clodan

Cita de: engelx en  1 Septiembre 2010, 07:31 AM
buenas, estoy haciendo un programita en c++ para que me haga lineas "al aire"

el asunto es que este es mi código

#include <windows.h>
#include <WinGdi.h>

int main(){
HDC hDC;
hDC = CreateDC("DISPLAY", NULL, NULL, NULL);
if (hDC) {
    TextOut(hDC, 0, 0, "Hello world!", 12);
    DeleteDC(hDC);
}
}


el compilador simplemente dice "souce file not compiled" no me da ningún error, de hecho devuelve el "done" típico que no hay problemas

he intentado en vez de CreateDC usar GetDC(0) (para tomar el escritorio)

los metodos de getdc y create dc no compilan... el resto de los programas que he hecho si...
estoy usando Dev-C++ 4.9.9.2

no entiendo a que se debe este error

el nombre del programa... serciorate de que este sin signos raros ni cosas asi...

a mi me paso y es porqe habia puesto º... en el titulo... entonces cuando se ejecuta, se guarda de diferente manera el signo ese y no se entienden... jejej salu2!

engel lex

sigue con el problema :s desinstalé el dev a 0 que borrara configuraciones y todo, reinstalo, configuro lo del linker,  pego el codigo y lo guardo con nombre "otro.cpp" y me da el mismo error
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Littlehorse

Podría ser por varios motivos, difícil de saber si ni siquiera la reinstalación ha solucionado el problema.

Lo que te recomendaría es que pruebes un entorno de trabajo mas estable como Code::Blocks.
An expert is a man who has made all the mistakes which can be made, in a very narrow field.

engel lex

#5
bajando Code::Blocks a ver que tal :P

no influirá el SO? tengo W7 no anti-vir, corrido con derechos de administrador :s

todos los otros programas los compila y corre perfecto... no será algo del codigo?

--actualizacion--

en Code::Blocks le coloqué en las opciones del linker Ole32.lib ya que es necesario... si no lo coloco me dá los miles de errores del linker... el asunto es que me devuelve un
mingw32-g++.exe: Ole32.lib: No such file or directory
cosa que a mi parecer no debería suceder, pero aun así intenta compilar, no me dá los errores del linker y me dice
Process terminated with status 1 (0 minutes, 0 seconds)
0 errors, 0 warnings

y me ofrece volver a compilar ya que intenta correrlo y no está compilado
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

rob1104

#6
La libreria a la que tienes que enlazar es gdi32.a, que se encuentra en el directorio lib de tu instalación del MinGW.

Yo lo hago a traves de Settings/Compiler and debugger:


Saludos

PD: Hice unas correcciones, no son necesarias para que compile pero es como debe quedar.

Sin análisis de requisitos o sin diseño, programar es el arte de crear errores en un documento de texto vacío.

engel lex

#7
2 cosillas... :s

1-. me dá error en la linea 10 (copiando exactamente el codigo)
un error raro expected ")" before string constant (me perece raro porque tengo todos mis paréntesis completos

el otro error en la 10 es invalid conversion from 'int' to 'const CHAR*' npi sobre cual int deberia ser char -.-

2-. me da curiosidad esa sintaxis diferente en vez de main... es primera vez que la veo (soy medio pollo en c) ya la googlearé para ver que rayos es, pero eso estaba afectado que no me compilara/coriera?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Littlehorse

Citar1-. me dá error en la linea 10 (copiando exactamente el codigo)
un error raro expected ")" before string constant (me perece raro porque tengo todos mis paréntesis completos

Raro, porque el código expuesto es correcto. Proba de crear el projecto y el source nuevamente, para ir descartando posibilidades.

Citar2-. me da curiosidad esa sintaxis diferente en vez de main... es primera vez que la veo (soy medio pollo en c) ya la googlearé para ver que rayos es,

No hace falta googlear mucho, puedes revisar las chinchetas:

Principios básicos de programación Windows

Citar
pero eso estaba afectado que no me compilara/coriera?

No.
En cuanto a la librería, te faltaba enlazar la librería correcta como bien menciono rob1104, pero igualmente esa tampoco era la causa del error original, porque dada esa situación lo normal es que el linker te avise sobre las referencias indefinidas.

Lo ideal es que la directiva para el linker la pases desde Project/Build options/Linker settings, de lo contrario estas utilizando directivas globales que afectaran a todos tus proyectos.

Saludos!

An expert is a man who has made all the mistakes which can be made, in a very narrow field.

engel lex

cool!!! hacerlo de nuevo, con otro nombre y otra carpeta si me corrió bien esta vez (quien sabe por que) pero ya tengo un problema menos del que preocuparme en mi vida :P! tnx u a todos ellos que me ayudaron :P ahora tengo que aprender los metodos  de lapiz, brocha y todo eso para ser feliz :P
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.