Ir ao conteúdo

Posts recomendados

Postado

Bem, alguns se lembram da vez que eu perguntei da função setPixel|() e bem, eu consegui resolver com a ajuda de vocês, mas hoje, de repente, começou a dar um erro muito estranho, ontem quando desliguei o computador funcionava, hoje mudei algumas coisas e o ero apareceu, tirei o que eu mudei, mas o erro continuou, e então até testei os programas da resposta e ainda deu erro, como se a função parasse de existir da noite para o dia, o pior é que todos os arquivos exe que possuíam essa função sumiram, preciso de ajuda

aqui o erro

C:\Users\Deusimar\AppData\Local\Temp\ccSKRfQi.o	qqrolafi.cpp:(.text+0x41): undefined reference to `_imp__SetPixel@16'

aqui um programa que dá o erro

#include <windows.h>

static COLORREF redColor=RGB(255,0,0);
static COLORREF blueColor=RGB(0,0,255);
static COLORREF greenColor=RGB(0,255,0);

/* SetPixel */
void setPixel(int x,int y,COLORREF& color=redColor)
{
	HWND console = GetConsoleWindow();
	HDC hdc = GetDC(console);
	SetPixel(hdc,x,y,color);
	ReleaseDC(console, hdc);
	return;
}

void drawLineBresenham(int xa, int ya, int xb, int yb)
{
	int dx = abs(xa - xb), dy = abs(ya - yb);
	int p = 2 * dy - dx;
	int twoDy = 2 * dy, twoDyDx = 2 * (dy - dx);
	int x, y, xEnd;

	if (xa > xb) {
		x = xb;
		y = yb;
		xEnd = xa;
	} else {
		x = xa;
		y = ya;
		xEnd = xb;
	}

	setPixel(x, y);

	while(x < xEnd) {
		x++;
		if(p < 0)
			p += twoDy;
		else {
			y++;
			p += twoDyDx;
		}
		setPixel(x, y);
	}
}

int main()
{
    drawLineBresenham(10, 20, 250, 300);
    return 0;
}

 

Postado
4 horas atrás, Daniel Bittencourt disse:

o pior é que todos os arquivos exe que possuíam essa função sumiram

 

?

 

Isso não acontece. Poste um código desses.

Postado

@arfneto lá em cima tem

de qualquer forma..

#include <windows.h>

static COLORREF redColor=RGB(255,0,0);
static COLORREF blueColor=RGB(0,0,255);
static COLORREF greenColor=RGB(0,255,0);

/* SetPixel */
void setPixel(int x,int y,COLORREF& color=redColor)
{
	HWND console = GetConsoleWindow();
	HDC hdc = GetDC(console);
	SetPixel(hdc,x,y,color);
	ReleaseDC(console, hdc);
	return;
}

void drawLineBresenham(int xa, int ya, int xb, int yb)
{
	int dx = abs(xa - xb), dy = abs(ya - yb);
	int p = 2 * dy - dx;
	int twoDy = 2 * dy, twoDyDx = 2 * (dy - dx);
	int x, y, xEnd;

	if (xa > xb) {
		x = xb;
		y = yb;
		xEnd = xa;
	} else {
		x = xa;
		y = ya;
		xEnd = xb;
	}

	setPixel(x, y);

	while(x < xEnd) {
		x++;
		if(p < 0)
			p += twoDy;
		else {
			y++;
			p += twoDyDx;
		}
		setPixel(x, y);
	}
}

int main()
{
    drawLineBresenham(10, 20, 250, 300);
    return 0;
}

 

Postado

O programa não parece ter nenhum problema, mas só traça uma linha.  Vermelha, como previsto.

 

Ainda não entendo o que podem ser executáveis que somem. O que você mudou? E a função SetPixel() tem só 2 comandos. O que pode sair errado? 

Postado
4 horas atrás, Daniel Bittencourt disse:

onde eu olho como fazer o link da lib dessa função.

 

É como o devair explicou no outro tópico.

 

Em 07/08/2020 às 19:53, devair1010 disse:

@Daniel Bittencourt    para usar esse comando


SetPixel(hdc,2º Parâmetro,3º Parâmetro,4º Parâmetro);

você precisa criar um projeto no dev c++  do tipo Windows Aplication, , e dentro da função WINAPI WinMain ou na LRESULT CALBACK ,  coloque esse comando , ou pode ser em um código simples mesmo do tipo console , mas aí precisa configura o compilador , adicionado no linker , em Tools / Compiler Options / e em add this comand , marque essa cx e coloque essa linha no quadro ao lado


-lgdi32 

 , e na primeira linha de seu programa coloque


#define _WIN32_WINNT 0x0600

 

 

  • Curtir 1
Postado
2 horas atrás, arfneto disse:

Ainda não entendo o que podem ser executáveis que somem. O que você mudou? E a função SetPixel() tem só 2 comandos. O que pode sair errado?

 

🤔 Isso pode sair errado. As configurações do IDE. Não pensei no mais simples.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!