JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=033d8f8d1b175bfa14d0c7998d2f3a70Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

#pragma warning funktioniert nicht
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 22.12.2003, 16:30    Titel: #pragma warning funktioniert nicht Antworten mit Zitat

Hi Leute,

ich hab endlich meine String Klasse fertig und will die jetzt in einem Projekt benutzen. Ich füge die Datei aber irgendwie so komisch ein das zu jeder Funktion ein Fehler in dieser Art kommt:

"Main.obj : error LNK2005: "public: __thiscall mstring::mstring(char *)"
(??0mstring@@QAE@PAD@Z) bereits in CForm.obj definiert"

vielleicht hilft das:
In Main.cpp füge ich CForm.h ein in die füge ich CObject.h ein in der ich dann die String Klasse einfüge.

Jetzt hab ich bei Projekt->Einstellungen->Linker Projekt Optionen: /force hinzugefügt. Das Programm läuft aber es kommen statt der Fehler Warnungen.

Das sind: 1x LNK4088 1x LNK4075 und 75x LNK4006
Ich hab diese jetzt versucht mit #pragma warning (disable: 4088 4075 4006) abzuschalten. Die Warnungen kommen aber immer noch.

Worann liegt das und wie krieg ich die Warnungen endlich weg??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 22.12.2003, 19:09    Titel: Antworten mit Zitat

auch wenn es dir herzlich wenig weiterhilft:

warum benutzt du eine eigene String-Klasse und nicht den STL-String?

cu Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 22.12.2003, 19:20    Titel: Antworten mit Zitat

Weil ich eben durch dieses komische Includieren auch solche Fehler verursache.


Und außerdem is mir sowas Selbstgemachtes lieber. Da kenn ich alle Funktionen und was nicht geht kann ich einfach erweitern.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
LordHoto
JLI'ler


Alter: 35
Anmeldedatum: 27.03.2003
Beiträge: 137
Wohnort: Gelnhausen
Medaillen: Keine

BeitragVerfasst am: 26.12.2003, 13:09    Titel: Antworten mit Zitat

in der Header datei auch :

Code:

#ifndef __MYSTRING__
#define __MYSTRING__

// hier der Code

#endif // __MYSTRING__


gemacht? Weil sonst hast ja 2 definitionen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 26.12.2003, 14:29    Titel: Antworten mit Zitat

alternati geht statt

LordHoto hat Folgendes geschrieben:


Code:

#ifndef __MYSTRING__
#define __MYSTRING__

// hier der Code

#endif // __MYSTRING__



auch
Code:

#pragma once


cu Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LordHoto
JLI'ler


Alter: 35
Anmeldedatum: 27.03.2003
Beiträge: 137
Wohnort: Gelnhausen
Medaillen: Keine

BeitragVerfasst am: 26.12.2003, 14:50    Titel: Antworten mit Zitat

ich glaub aber nur der visual studio compiler aktezpierts , ich glaub gcc will das net und wir wollen doch alle protable Software!

MFG

LordHoto
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 45
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 26.12.2003, 17:05    Titel: Antworten mit Zitat

Wer hier mir DirectX und WinAPI programmiert, kann ruhig auch #pragma once benutzen - das ist eh schon alles nicht mehr Plattformunabhängig...
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
LordHoto
JLI'ler


Alter: 35
Anmeldedatum: 27.03.2003
Beiträge: 137
Wohnort: Gelnhausen
Medaillen: Keine

BeitragVerfasst am: 26.12.2003, 17:46    Titel: Antworten mit Zitat

aber da sieht man nicht mit was er Arbeitet und später hat man weniger zu tun es zu portetieren!

MFG

LordHoto
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 26.12.2003, 19:34    Titel: Antworten mit Zitat

also ich habs so gemacht:

Code:

#ifndef __MYSTRING_H
#define __MYSTRING_H

//hier der Code

#endif


das funktioniert genauso wenig wie:
Code:

#pragma once

//hier der code


sonst hats eigentlich auch funktioniert Exclamation Question
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
LordHoto
JLI'ler


Alter: 35
Anmeldedatum: 27.03.2003
Beiträge: 137
Wohnort: Gelnhausen
Medaillen: Keine

BeitragVerfasst am: 26.12.2003, 19:39    Titel: Antworten mit Zitat

schreib mal den headercode!

MFG

LordHoto
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 27.12.2003, 07:17    Titel: Antworten mit Zitat

ich hab in der header datei gleich alle methoden geschrieben die lass ich mal weg:
Code:

#pragma once


#include <iostream.h>
#include <math.h>
#include <windows.h>
#include <stdio.h>

class mstring
{
   private://Attribute

      char *string;//(dynamisches array) enthält char-zeichen

      int Length;

      bool error;//wenn error gleich true Fehler passiert
      char *errortext;//hier drin ist die Beschreibung des Fehlers
      void reseterror(void){error=false;
                       strcpy(errortext,"");}
      void seterror(char *error_text){error=true; strcpy(errortext,error_text);}



   public://Memberfunktionen

      #define MAX_LENGTH 256

      mstring(void);
      mstring(char *String);
      mstring(char Char);
      ~mstring();

      //setters
      void set(char *String);
      void set(char Char);
      
      void del(int Pos,int Anzahl);
      void ins(int Pos,char *String);
      void ins(int Pos,char Char);
      void repl(int Pos, char *String);
      void repl(int Pos, char Char);
      void add(char *String);
      void add(char Char);
      int find(char *String);
      //int find(char Char);

      char operator [](int Pos);
      void operator =(char *String){set(String);}
      char *operator <<(mstring mystring){ return mystring.get();}
      //void operator =(char Char){set(Char);}

      //getters
      double  getreal(void);
      int  getint(void);
      int  length(void);
      char get(int Pos);
      char *get(void);

      bool failed(void){return error;}
      char *geterrortext(void){return errortext;}
};

double StrToFloat(char *String);
char *FloatToStr(double real);

int StrToInt(char *String);
char *IntToStr(int integer);

double Betrag(double zahl);


Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 27.12.2003, 12:26    Titel: Antworten mit Zitat

Versuchst du vielleicht doch, den Header zweimal zu includieren?
#pragma once verhinderst zwar, dass er zweimal eingebunden wird, aber wenn du dann im Header definierte Objekte(Klassen, Funktionen, Variablen, etc...) in zwei cpps gleichzeitig einbinden willst, dann kann der Kompiler die Funktions-(Klassen-, etc...)namen nicht erkennen, weil er das nochmalige Einbinden verhindert Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 03.01.2004, 14:17    Titel: Antworten mit Zitat

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
The Lord of Programming
Living Legend


Alter: 37
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 03.01.2004, 22:12    Titel: Antworten mit Zitat

Da haben wirs ja - du bindest CObject.h einmal direkt in CForm.h und zwei mal indirekt über CEdit.h und CLabel.h ein. Wenn du das includen von CObject.h in CForm.h weglässt, sollte es funktionieren. Die in CObjekt deklarierten Objekte sind dann ja durch die anderen beiden Header auch verfügbar Wink
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
C++Builder
Senior JLI'ler



Anmeldedatum: 04.10.2003
Beiträge: 235

Medaillen: Keine

BeitragVerfasst am: 04.01.2004, 11:24    Titel: Antworten mit Zitat

nein, das funktioniert leider auch nicht Crying or Very sad
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum