|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 30.04.2006, 16:48 Titel: "too many references" fehler / warnmeldung |
|
|
Hi,
wenn ich meinen Quelltext compiliere erhalte ich die Warnmeldung:
BK4504 : file contains too many references; ignoring further references from this source
das Programm läuft aber ohne weiteres. Was genau ist mit "freferences" gemeint und kann ich das munter ignorieren?
grüße
RayJunx _________________ Just a Freak |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 30.04.2006, 17:11 Titel: das ist eine gute Frage! |
|
|
Keine Ahnung wie ich das hinbekommen habe!
die erklärung in der online lib für den fehler hab ich auch schon gefunden, aber ist es jetzt überhaupt ein fehler oder nur eine warnung, laufen tut nämlich alles, und ich weiß nicht was der mit REFERENCEN meint.
was sind in diesem den referencen? dann kann ich mir auch überlegen woher ich so viele zusammenbekommen habe _________________ Just a Freak |
|
Nach oben |
|
|
The Lord of Programming Living Legend
Alter: 37 Anmeldedatum: 14.03.2003 Beiträge: 3122
Medaillen: Keine
|
Verfasst am: 30.04.2006, 17:28 Titel: |
|
|
Referenzen sind sowas:
CPP: | int other_integer=256;
//Normales reservieren eines Speicherbereichs für einen integer
int normal_integer=other_integer;
//Zeiger auf einen Integer
int* pointer_integer=&other_integer;
//Referenz auf einen Integer - entspricht intern dem Zeiger, aber wird von der Syntax wie ein normaler Integer benutzt
int& reference_integer=other_integer;
|
Ich denke mal, dass das in der Fehlermeldung gemeint ist, ich hab so eine selbst noch nie bekommen _________________ 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 |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 30.04.2006, 17:50 Titel: |
|
|
Es ist eine Warnung, allerdings solltest du Warnungen auch nicht einfach übergehen, das wäre sinnwidrig.
Wenn du Code gibst, können wir dir eventuell helfen. |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 30.04.2006, 18:07 Titel: erstmal danke für die tips |
|
|
hi!
danke für die ratschläge. jetzt weiß ich auch was damit genau gemeint ist. referenzen klar. komisch nur, ich verwende die eigentlich GARNICHT.
der Gesamte Quellcode ist Ellenlang deshalb unmöglich hier zu posten und ich kann auch nicht erwarten das den jemand komplett in augenschein nimmt. Aber ich werde meine augen offenhalten vielleicht finde ich bald die
lösung. Im moment habe ich noch keine idee... vielleicht irgendwo eine schleife die gleich tausende referencen definiert... kann ich mir aber kaum
vorstellen. wie gesagt sowas habe ich noch garnicht angewendet...eigentlich *lol*
wird mir schonnoch dämmern trotzdemnochmal danke für die infos!
grüße
Rayjunx _________________ Just a Freak |
|
Nach oben |
|
|
GreveN JLI Master
Alter: 38 Anmeldedatum: 08.01.2004 Beiträge: 901 Wohnort: Sachsen - Dresden Medaillen: Keine
|
Verfasst am: 30.04.2006, 18:15 Titel: |
|
|
(De)referenzieren kann z.B. auch bedeuten über Zeiger auf Objekte zuzugreifen, muss also nicht zwingend ein Konstrukt sein, wie von TLoP beschrieben. |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 30.04.2006, 18:23 Titel: jetzt kommen wir der sache näher... |
|
|
Hi! jetzt kommen wir der sache langsam näher,
ich verwende eine objektklasse, ähnlich der klasse aus dem buch.
diese klasse wird aber öfter neu definiert. Also objekt gelöscht, bzw
gesäubert und erneut mit anderer textur usw versehen. bei dieser
texturzuweißung zum bleistift oder anderen funktionen die damit
zusammenhängen könnten referenzen entstehen. hier mal ein
beispiel der funktion die ich zur texturzuweißung sehr oft
im quellcode verwende:
Code: | void Objekt::AddTexture(LPDIRECT3DTEXTURE9 lpTexture) // Textur für das Sprite festlegen
{
D3DSURFACE_DESC desc; // Beschreibung des zu Grunde liegenden Surfaces
lpTexture->GetLevelDesc(0,&desc);
m_Breite = desc.Width; // Breite und Höhe speichern
m_Hoehe = desc.Height;
m_HalbeBreite = m_Breite/2;
m_HalbeHoehe = m_Hoehe/2;
m_RotationsPunkt = D3DXVECTOR2((float)m_Breite/2, (float)m_Hoehe/2);
m_AnimationVec.push_back(lpTexture); // Zeiger auf die Textur speichern
} |
Fehler gefunden?
wenn ja, ist das nur eine art "performance" warnung, dann laß ich es einfach so, weil ich wüßte nicht wie ich es jetzt geschickt umgehen kann, zumindest nicht ohne erheblichen aufwand.
grüße an alle
Rayjunx _________________ Just a Freak |
|
Nach oben |
|
|
fast hawk Senior JLI'ler
Anmeldedatum: 15.07.2005 Beiträge: 237 Wohnort: Freiburg Medaillen: Keine
|
Verfasst am: 30.04.2006, 18:44 Titel: |
|
|
sowie es mir scheint ist die Funktion ok.
Aber sowie ich es verstanden musst du ein ja eine Klasse 60,000 über mal mit einen Zeiger aufrufen und das ist en weng viel . Vorrallem weil wenn du ne while Schleifen hast zählt die nur ein mal auch wenn sie dann dynamisch millarden mal läuft. Kommentier halt mal ein bisschen Code aus damit du ungefähr die Stelle beschreiben kannst und dann post mal den Code. _________________ Jetziges Projekt: The Ring War
Status: 40%
-----------------------------------
Nicht weil es schwer ist, wagen wir es nicht, sondern weil wir es nicht wagen, ist es schwer.
--
Lucius Annaeus Seneca (4)
röm. Philosoph, Dramatiker und Staatsmann |
|
Nach oben |
|
|
RayJunx JLI'ler
Alter: 43 Anmeldedatum: 16.01.2006 Beiträge: 130 Wohnort: Bayern Medaillen: Keine
|
Verfasst am: 01.05.2006, 09:52 Titel: danke |
|
|
danke nochmal für die info,
werd ich unter diesem gesichtspunkt mal genauer unter die lupe nehmen,
kann aber dauern. hoffe ich finde dann dieses topic noch wenn ich die lösung habe _________________ Just a Freak |
|
Nach oben |
|
|
proggaholic Junior JLI'ler
Alter: 36 Anmeldedatum: 07.05.2005 Beiträge: 85 Wohnort: Heap Medaillen: Keine
|
Verfasst am: 03.05.2006, 20:35 Titel: |
|
|
Also meines Wissens nach haben (hatten?) Microsoft-Compiler und damit eventuell auch andere eine Beschränkung auf höchstens 64000 (und ein paar zerquetschte) Zeiger, die gleichzeitig verwaltet werden können. Dies lag früher IMHO daran, dass man davon ausgegangen ist, dass ein Programmierer so viele Zeiger eh nie brauchen würde (angesichts der Tatsache, dass es so viele Adressen bei dem damals begrenzten Speicher gar nicht gab). Unter dem Borland C++ Compiler 3.1 (noch die DOS-IDE mit Mausunterstützung, kennt das hier jemand? ^^) ist es z.B. auch nicht möglich, ein Array mit über 64000 Elementen anzulegen, da man da gesagt hat, soviel Speicher steht sowieso nie zur Verfügung, und da hat man dann gesperrt, auch aus Gründen der Verwaltung, denn bei der Indizierung des 63999ten Elements wäre einiges an Arbeit angefallen etc. etc. Bei Referenzen ist mir sowas noch nicht zu Ohren gekommen, hört sich aber nach einer Endlosschleife an oder einem überladenen Zeiger-Array (ist vielleicht auch unter REFERENCE zu verstehen, kA), aber die höhere Priorität würde ich eindeutig einer Schleife einräumen, die deine Objekte/Structs oder was immer du auch hast, anlegt oder in einen Vektor etc. einträgt, musst halt schauen.
Der Hinweis "to a single symbol" ist allerdings ebenfalls sehr verdächtig, das würde praktisch bedeuten, dass du auf ein einziges Objekt die 64000 Zeiger/Referenzen gemacht hast, was dem Compiler natürlich nicht sehr sinnvoll erscheint. Ebenfalls seltsam ist "ignoring further references from this source", was praktisch bedeuten würde, dass in der aktuellen Datei noch weit über die bisher schon existierenden 64000 "Referenzen" weitere generiert werden sollen...da läuft irgendwas gewaltig schief. Also, am besten die Schleifenbedingungen nochmal durchsehen, step-by-step debuggen und die Bedingungen beobachten, dort dürfte dann aller Wahrscheinlichkeit nach was zu finden sein. Oft hilft es auch, den Code jemand Fremdem (d.h. jemand, der nicht am selben Code programmiert, aber vielleicht durchaus am selben Projekt, Bekannter, Freund, etc.) in die Hand zu drücken, dem fällt sowas wahrscheinlich auf den 2. Blick auf.
mfg
proggaholic |
|
Nach oben |
|
|
|
|
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
|