Wątek przeniesiony 2018-06-04 12:26 z C/C++ przez ŁF.

Kompilacja wyświetla listę błędów – jak je poprawić?

0
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#include <math.h>

using namespace std;

//Panel Graficzny - kolory obiektow
static const long int clBlack=0x000000;   
static const long int clMaroon=0x000080;
static const long int clGreen=0x008000;
static const long int clOlive=0x008080;
static const long int clNavy=0x800000;
static const long int clPurple=0x800080;
static const long int clTeal=0x808000;
static const long int clGray=0x808080;
static const long int clSilver=0xC0C0C0;
static const long int clRed=0x0000FF;
static const long int clLime=0x00FF00;
static const long int clYellow=0x00FFFF;
static const long int clBlue=0xFF0000;
static const long int clFuchsia=0xFF00FF;
static const long int clAqua=0xFFFF00;
static const long int clLtGray=0xC0C0C0;
static const long int clDkGray=0x808080;
static const long int clWhite=0xFFFFFF;
static const long int clMoneyGreen=0xC0DCC0;
static const long int clSkyBlue=0xF0CAA6;
static const long int clCream=0xF0FBFF;
static const long int clMedGray=0xA4A0A0;
static const long int clNone=0x1FFFFFFF;
static const long int clDefault=0x20000000;

int main(int argc, char *argv[])
{  
typedef double DBLARRAY[100];      

///////////////////////////////////////////////////////////////////////////////
//INTERFEJS DOSTEPU DO OBIEKTOW ZDEFINIOWANYCH W BIBLITECE DYNAMICZNEJ "DLL"
//UWAGA: W TYM BLOKU NIE NALEZY ZMIENIAC ZADNYCH DEFINICJI I NAZW OBIEKTOW
///////////////////////////////////////////////////////////////////////////////
//definicje typow funkcji zdefiniowanych w bibliotece "sistlab.dll"
typedef WORD (__stdcall *MYPROCS)(INT);
MYPROCS consleep;
typedef WORD (__stdcall *MYPROC0)(INT,INT);
MYPROC0 gotoxy;
typedef WORD (__stdcall *MYPROCM)(PCHAR);
MYPROCM UstawMape;
typedef WORD (__stdcall *MYPROC1)();
MYPROC1 StartSISTLab,StopSISTLab;
typedef WORD (__stdcall *MYPROC2)(WORD,double,long int,long int,long int,long int,long int,long int);
MYPROC2 UstawObiekt;
typedef WORD (__stdcall *MYPROC3)(long int,long int,long int,long int, //we
                                  long int,long int,long int,long int, //we
                                  long int,                            //we
                                  double,double,double,double,         //we
                                  PCHAR,PCHAR,PCHAR,                   //we
                                  DBLARRAY&,DBLARRAY&);                //we-wy
MYPROC3 UstawWykres;
typedef WORD (__stdcall *MYPROC5)(long int,double&); 
MYPROC5 CzytajObiekt;
typedef WORD (__stdcall *MYPROC6)(long int,long int,long int,long int, //we
                                  long int,long int,long int,long int, //we
                                  long int,long int,long int,long int, //we
                                  PCHAR);                              //we
MYPROC6 UstawTekst;

///////////////////////////////////////////////////////////////////////////////////////
HINSTANCE hModule = LoadLibrary ("sistlib.dll");
if (hModule == NULL) {return 0;} //sprawdzenie poprawnosci zaladowania biblioteki
///////////////////////////////////////////////////////////////////////////////////////
// ustalenie adresow funkcji w bibliotece "sistlab.dll"
//funkcje pomocnicze konsoli trybu tekstowego
consleep = (MYPROCS ) GetProcAddress (hModule, "ConSleep");
gotoxy = (MYPROC0 ) GetProcAddress (hModule, "ansic_gotoxy");

//funkcje "Panelu Graficznego" SiSTLab20
StartSISTLab = (MYPROC1 ) GetProcAddress (hModule, "StartSISTLab");
StopSISTLab = (MYPROC1 ) GetProcAddress (hModule, "StopSISTLab");
UstawMape = (MYPROCM ) GetProcAddress (hModule, "ansic_UstawMape");
UstawObiekt = (MYPROC2 ) GetProcAddress (hModule, "UstawObiekt");
UstawWykres = (MYPROC3 ) GetProcAddress (hModule, "ansic_UstawWykres");
CzytajObiekt = (MYPROC5 ) GetProcAddress (hModule, "CzytajObiekt");
UstawTekst = (MYPROC6 ) GetProcAddress (hModule, "ansic_UstawTekst");
///////////////////////////////////////////////////////////////////////////////
// KONIEC INTERFEJSU DO OBIEKTOW ZDEFINIOWANYCH W BIBLIOTECE DYNAMICZNEJ "DLL"
///////////////////////////////////////////////////////////////////////////////

system("cls"); //czyszczenie okna konsoli trybu tekstowego
printf("\n"); //pusty wiersz w celu obnizenia komunikatu specjalnego SiSTLab20
StartSISTLab();// uruchomienie "Panelu Graficznego" SiSTLab20
consleep(100);
gotoxy(1,1);printf("Dev-C++ 5.11: Zakonczenie aplikacji klienta po nacisnieciu 'q'\n");    
////////////////////////////////////////////////////////////////////////////////


double R,C,E,l,tao;
double BitBtn3, BitBtn4, BitBtn5;
double t[100], u[100];
char s1[100], s2[100], s3[100], s4[100], s5[100];
char koniec; 
int i,j,k,p,m;


//przykladowa inicjalizacja zmiennych 
koniec='\0';  
BitBtn3=0;
i=0;
p=0;
k=0;
///////////////////////////////////////////////////////////////////////////////

UstawMape("obw.jpeg");
UstawObiekt(13,0,1158,561,0,0,0,1);   //Przycisk "STOP" - zatrzymanie programu
UstawObiekt(14,0,300,170,0,0,0,1);		// przycisk z/o
UstawObiekt(15,0,300,170,0,0,0,0);
UstawObiekt(21,10.0,75,513,170,0,0,1);  //edit R
UstawObiekt(22,0.1,75,546,170,0,0,1);   //edit C
UstawObiekt(23,12.0,75,579,170,0,0,1);  // edit E
UstawWykres(1,675,166,500,270,0,1,6,0,0.0,6,0.0,6,"Przebieg napiecia na kondensatorze", "t", "u", t, u); 



////////////////////////////////////////////////////////////////////////////////

//START GLOWNEJ PETLI PROGRAMU "WSPOLDZIALAJACEJ" Z PANELEM GRAFICZNYM SISTLAB20
while ((koniec != 'q')&&((int)(BitBtn3) != 1))
{   
         
CzytajObiekt(21,R);
CzytajObiekt(22,C);
CzytajObiekt(23,E); 
 
tao=R*C; 
l=(-1/tao);

t[i]=i+k*100;

if(p==1)
	{	
					
		u[i]=E - E*(pow(M_E, (l*j)));
		sprintf(s3,"%.2f*%.2f*du/dt+u = %.2f ", R,C,E); 
		sprintf(s4,"u=%.2f-%.2f*e^(-1/((%.2f*%.2f))*%.2f",E,E,R,C,t[i]);
	}else
		{
			u[i]=E*(pow(M_E, (l*j)));
			sprintf(s3,"%.2f*%.2f*du/dt+u = 0 ", R,C);
			sprintf(s4,"u=%.2f*e^(-1/((%.2f*%.2f))*%.2f",E,R,C,t[i]);
		};

if(BitBtn4 == 1)
	{
		UstawMape("obw1.jpeg");
		UstawObiekt(14,0,300,170,0,0,0,0);	
		UstawObiekt(15,0,300,170,0,0,0,1);	
		p=1;
		j=0;		
	}
	
if(BitBtn5 == 1)
	{
		UstawMape("obw.jpeg");
		UstawObiekt(14,0,300,170,0,0,0,1);	
		UstawObiekt(15,0,300,170,0,0,0,0);	
		p=0;
		j=0;
	}


UstawWykres(1,675,166,500,270,0,1,100,0,i+k*100-30,i+k*100+10,0.0,(1.1*E),"Przebieg napiecia na kondensatorze", "t", "i", t, u); 

sprintf(s1,"Stala czasowa obwodu : %.2f s", tao);
sprintf(s2,"Czas trwania         : %d", i+k*100);
sprintf(s5,"u(%.2f)= %.2f V", t[i],u[i]);

for(m=0;m<10;m++)
{
UstawTekst(1,324,492,300,110,1,1,1,0,clSkyBlue,0,0,s1);
UstawTekst(1,324,492,300,110,1,2,1,0,clWhite,0,0,s2);
UstawTekst(1,324,492,300,110,1,3,1,0,clWhite,0,0,s3);
UstawTekst(1,324,492,300,110,1,4,1,0,clWhite,0,0,s4);
UstawTekst(1,324,492,300,110,1,5,1,0,clWhite,0,0,s5);
};

i++;
if(i==100)
	{
		i=0;
		k++;
		//UstawWykres(1,675,166,500,270,0,1,6,0,0.0,6,0.0,6,"Przebieg prądu I", "t", "i", t, u);
	}
j++;
consleep(400);[]
CzytajObiekt(14,BitBtn4);
CzytajObiekt(15,BitBtn5);
CzytajObiekt(13,BitBtn3); // Stop - zakonczenie algorytmu (programu)

} //zakonczenie petli "while {}"

StopSISTLab(); //zakonczenie dzialania Panelu Graficznego SiSTLab20
consleep(1000);
FreeLibrary (hModule); // zwolnienie uchwytu(pamieci) systemowego biblioteki DLL    
return EXIT_SUCCESS; //zakonczenie procesu konsoli trybu tekstowego
}

Hej oto błędy po skompilowaniu programu:

errors.jpg

Nie potrafię sobie z tym poradzić ktoś pomoże wyrzucić te błędy? Problem pojawia się dopiero po kompilacji przez co nie mogę nic edytować.
Program działał na starszej wersji DeVcpp 4.9.
(Tak dawałem ignoruj błędy jednakże to nic nie zmienia)
Proszę o pomoc. :)

0

Szanowny panie,
to nie błędy tylko warningi. Chyba, że screen nie taki jak trzeba.
Spróbuj kompilować z flagą -Wwrite-strings tak jak Ci zresztą napisało.

0

Chyba nie rozumiem jak mam to zrobić

0

Jeszcze raz zaznaczę, że to warningi a nie errory. Ten program się kompiluje i powinien działać (jak to już nie wiem). Jak Ci jednak te warningi przeszkadzają to sobie poszukaj jak w DevCpp ustawić flagę do kompilatora.
edit: W internetach piszą, że jest coś takiego jak Tools -> Compiler Options ale nie wiem ile w tym prawdy.

0

Chodzi o to, że po skompilowaniu coś się tam zmienia choć nic się nie zmienia i .exe tego programu nie działa jak powinien wyskakuje konsola informacja o czasie działania. Powinno uruchomić program sistlab.

2

A no jak coś się tam zmienia choć nic się nie zmienia to musisz iść do wróżki albo egzorcysty.

0

Po co uzywac DevCpp? Przeciez w komercji nikt tego nie robi. Nie lepiej VC++ Community Edition?

1 użytkowników online, w tym zalogowanych: 0, gości: 1