amiga-news ENGLISH VERSION
.
Links| Forum| Kommentare| News melden
.
Chat| Umfragen| Newsticker| Archiv
.

amiga-news.de Forum > Suche [ - Suche - Neue Beiträge - Registrieren - Login - ]

Erste << 48 49 50 51 52 -53- 54 55 56 57 58 Letzte Ergebnisse der Suche: 1858 Treffer (30 pro Seite)
Reth   Nutzer

03.03.2005, 08:10 Uhr

[ - Direktlink - ]
Thema: Weitere GCC Anfängerprobleme
Brett: Programmierung

Weiss denn wirklich keiner wo das Problem liegen könnte?

Wer GCC nutzt: Wie linkt ihr eure Sourcefiles, die Zugriffe auf AOS-Libraries verwenden?
 
Reth   Nutzer

02.03.2005, 18:40 Uhr

[ - Direktlink - ]
Thema: Weitere GCC Anfängerprobleme
Brett: Programmierung

Tja, ich bins schon wieder,

nun kann ich mal ein bisschen weitermachen beim Portieren meiner Sourcen und stecke schon wieder fest.

Ich verwende in einer Klasse die Funktion AllocAslRequestTags().
Dazu öffne ich in dieser Klasse die asl.library.

Beim Linken kommen dann folgende Fehler (mit der graphics.library dasselbe, nur hier besteht im Source kein OpenLibrary() Aufruf, dennoch der gleiche Fehler):

/gg/lib/libamiga.a(allocaslrequesttags.o)(.text+0x4): undefined reference to 'AslBase'
/gg/lib/libamiga.a(aslrequesttags.)(.text+0x4): undefined reference to 'AslBase'
/gg/lib/libamiga.a(finddisplayinfo.o)(.text+0x4): undefined reference to 'GfxBase'
/gg/lib/libamiga.a(getdisplayinfodata.o)(.text+0x6): undefined reference to 'GfxBase'
collect2: ld returned 1 exit status

Muss ich die Objektfiles der Libraries beim Make mit angeben?

Hier mal das MakeFile:

projectPath = <Pfad>

WizardWars : ScreenModeRequestC.o ScreenModeDataC.o ScreenModeHookC.o WizardWars.o
g++ -I $(projectPath) -o WizardWars ScreenModeDataC.o ScreenModeRequestC.o ScreenModeHookC.o WizardWars.o

WizardWars.o : WizardWars.cc ScreenModeRequestC.h ScreenModeHookC.h
g++ -I $(projectPath) -c WizardWars.cc
ScreenModeRequestC.o : ScreenModeRequestC.cc ScreenModeRequestC.h ScreenModeDataC.h
g++ -I $(projectPath) -c ScreenModeRequestC.cc
ScreenModeDataC.o : ScreenModeDataC.cc ScreenModeDataC.h
g++ -I $(projectPath) -c ScreenModeDataC.cc
ScreenModeHookC.o : ScreenModeHookC.cc ScreenModeHookC.h Constants.h
g++ -I $(projectPath) -c ScreenModeHookC.cc

clean :
delete ScreenModeHookC.o ScreenModeDataC.o ScreenModeRequestC.o WizardWars.o

Ausgeführt wird es bis zu genannten Fehlern beim Linken!

Danke schon mal
Ciao

[ Dieser Beitrag wurde von Reth am 02.03.2005 editiert. ]
 
Reth   Nutzer

02.03.2005, 17:21 Uhr

[ - Direktlink - ]
Thema: Voted für Freespace-Server!
Brett: Amiga, AmigaOS 4

Zitat:
Original von HelmutH:
@ Reth

Du scheinst ja immer noch interesse an Freespace zu haben, warum schaust Du nicht mehr im FreespaceForum http://www.amigalien.de/freespace/hp/forum.htm rein?


Sorry, aber in den letzten Monaten bin ich zu kaum noch was gekommen am Amiga, v.a. nicht zum Spielen! Und daher auch mein rarer Auftritt. Hab nur einmal lesend reingesehen.

Würd gern mehr testen, programmieren und auch spielen. Aber zur Zeit keine hab ich keine selbige.

Ciao
 
Reth   Nutzer

24.02.2005, 22:32 Uhr

[ - Direktlink - ]
Thema: GCC Anfängerproblem
Brett: Programmierung

Zitat:
Original von Amaris:
Naja....es kam jedenfalls bist jetzt noch nicht oft vor daß eine Installation auf Doppelklick
funktioniert hat. Weder auf dem A1 noch auf dem 1200er.


Bei mir zum Glück schon. Ging öfter als es nicht ging (oder so :D )!

Zitat:
Woher weiß ich welche Assigns ich wohin machen muß ?

;BEGIN GCC Installer
assign GG: <Zielverzeichnis>/GG
assign LIBS: GG:Sys/libs add
path GG:bin add
assign BIN: gg:bin
;END GCC Installer

Zitat:
Da steht eigentlich nur: (all)
Zeilenangaben stehen da ja nicht, aber laut "NotePad" war ich in
Zeile 168.

Hier mal die komplette Datei: http://www.amaris.de.vu/Install.script


Hm, schon seltsam, dass ist eigentlich nur das Argument für den Kopierbefehl! Am besten bei sowas auch mal Snoopdos mitlaufen lassen und nachsehen, was da versucht wird auszuführen.
 
Reth   Nutzer

24.02.2005, 14:09 Uhr

[ - Direktlink - ]
Thema: Voted für Freespace-Server!
Brett: Amiga, AmigaOS 4

Zitat:
Original von Schaumstofflumpi:
Hi,

würdest Du bitte dieses Spiel uns kurz vorstellen. Dann könnte es unter Umständen auch sein, dass sich einer für dein angepriesenes Voting interessiert.

Gruß,
Schauminator
--
<<<~~~| Schaumstofflumpi |~~~>>>


Wenn Du meinst. Eigentlich sollte dieser Aufruf v.a. Freespace-Spieler ansprechen.

Also hier ein Abriß:

http://www.hyperion-entertainment.biz:8080/projects/freespace/index_html?arch=amiga


Dazu vielleicht noch ein paar Seiten aus Google. Das Spiel ist schon etwas älter, darum gibt es keine neuen Infos, sondern v.a. Reviews:

hier:
http://www.henke-hk.com/aakt/archiv/deutsch/Ausgabe0202/Spiele4.html

und hier:
http://www.gamespot.com/pc/sim/descentfreespacethegw/review.html

und auch hier:
http://www.dooyoo.de/pc-spiele/conflict-freespace/Testberichte/


und und und...

Wenn das nicht langt, frag Google!


 
Reth   Nutzer

24.02.2005, 13:50 Uhr

[ - Direktlink - ]
Thema: Voted für Freespace-Server!
Brett: Amiga, AmigaOS 4

Zitat:
Original von DJBase:
Gibt es denn nicht schon genug Server für das Spiel?



--
Pegasos II (Rev 2B1), G3 600 MHz, 512 MB RAM, ATI Radeon 9250 (128 MB), 80 GB HDD, SuperDrive, MorphOS 1.4, Debian GNU/Linux


Nenn mir einen öffentlichen!
Hab mal gesucht und keine gefunden, da das Game schon so alt ist.
 
Reth   Nutzer

24.02.2005, 13:22 Uhr

[ - Direktlink - ]
Thema: Voted für Freespace-Server!
Brett: Amiga, AmigaOS 4

Hallo!

Los! Alle voten! Für nen Freespace-Server! Ist ein klasse Game das!

Stimmen können hier abgegeben werden:

http://amigaworld.net/modules/newbb/viewtopic.php?topic_id=10552&forum=7


Ciao
 
Reth   Nutzer

23.02.2005, 22:57 Uhr

[ - Direktlink - ]
Thema: GCC Anfängerproblem
Brett: Programmierung

@Amaris

Hm, hatte hier keine Probleme. Soweit ich weiss, besteht die Installation "nur" aus dem Kopieren der Files und dem Einrichten der Assigns. Aber ich habs auch gern, wenn alles funktioniert auf Doppelklick.

Was steht denn im Installscript in Zeile 168?
 
Reth   Nutzer

17.02.2005, 09:57 Uhr

[ - Direktlink - ]
Thema: Gekaufte Hardware geht nicht - Prüfrecht des Verkäufers mit Gebühr?
Brett: Get a Life

Zitat:
Original von Bogomil76:
Hi,

...
Wg. der 15¤ guck mal hier bei chip.de


Danke. Aber wie macht man das dem Händler klar. Gibts da auch gesetzliche Grundlagen?

Ciao
 
Reth   Nutzer

17.02.2005, 09:46 Uhr

[ - Direktlink - ]
Thema: Gekaufte Hardware geht nicht - Prüfrecht des Verkäufers mit Gebühr?
Brett: Get a Life

Danke für die Hinweise.

Aber wie sieht das denn nun aus, wenn ich die Platte zur Überprüfung einsende, die Frist des Widerrufs aber währenddessen abläuft!?

Zählen die Tage, in denen das Gerät nicht beim Kunden war mit?

Ciao
 
Reth   Nutzer

17.02.2005, 09:43 Uhr

[ - Direktlink - ]
Thema: AmiGift verbindet sich nicht mehr!
Brett: Amiga, AmigaOS 4

Zitat:
Original von Indy:
Hallo Reth !

Du solltest in den Preferences von AmiGift unter "daemon" das Gnutella protocol deaktivieren, welches zur Zeit (leider) nicht mehr (aber hoffentlich bald wieder) läuft.
Die Prefs abspeichern, AmiGift ganz beenden und danach nochmal neu starten.

Viel Glück...

Gruß, Indy


Danke, das wars! Funktioniert wieder!


 
Reth   Nutzer

16.02.2005, 20:02 Uhr

[ - Direktlink - ]
Thema: Gekaufte Hardware geht nicht - Prüfrecht des Verkäufers mit Gebühr?
Brett: Get a Life

Zitat:
Original von hjoerg:

http://www.finanztip.de/recht/online/ebay-widerruf.htm



Ich finde das Verhalten des Händlers i.O. :)

Nimm das Geld und gut ist :D


Um den Widerruf geht es mir eigentlich gar nicht, sondern um die Tatsache, dass im Gewährleistungsfall die Ware beim Verkäufer untersucht wird (ohne, dass ich das nachvollziehen kann) und bei Nichtfestellung von Fehlern mir nochmals EUR 15,- berechnet werden (die Ware wurde von mir bereits Tage vor Erhalt bezahlt) und ich dann entweder ne nicht funktionstüchtige Hardware behalten darf (was nutzt mir als Kunde das, wenn das Gerät beim Verkäufer funktioniert!) oder evtl. noch Widerrufen kann (wobei ich nicht weiss wie das mit der Frist ist, wenn die Ware beim Verkäufer liegt???)!?

Ciao
 
Reth   Nutzer

16.02.2005, 17:40 Uhr

[ - Direktlink - ]
Thema: Gekaufte Hardware geht nicht - Prüfrecht des Verkäufers mit Gebühr?
Brett: Get a Life

Zitat:
Original von jochen22:
...
wird und bei Nichtfeststellung von Fehlern eine Gebühr von EUR 15,-
...

Wenn der Händler nachweisen kann, daß du einen Fehler gemacht hast.
Kann er aber nicht. Es sei denn er hat genau die Hardwarekonfig, die
Du verwendest.
Da er aber die Kosten für den Rücktransport übernommen hat, was
er definitiv nicht muß, solltest du auch nicht kleinlich sein.


Isn Argument. Ich dachte der Rücktransport bei Widerruf muss ab EUR 40,- vom Verkäufer übernommen werden, oder ist das "nur" Kulanz?
 
Reth   Nutzer

16.02.2005, 16:52 Uhr

[ - Direktlink - ]
Thema: Gekaufte Hardware geht nicht - Prüfrecht des Verkäufers mit Gebühr?
Brett: Get a Life

Hallo allerseits,

ich hab ja selten Glück mit gekaufter Technik. Hier mein neuester Fall. Ich hab via ebay eine neue externe 250GIG HD mit USB2.0 Anchluss erstanden.

Der Verkäufer ist einer dieser ebay-Shops.

Die Platte wurde geliefert, man musste sie noch ins Gehäuse einsetzen und alles zusammenschrauben.

Anbei war eine Anleitung zur Inbetriebnahme. Habe alles peinlich genau beachtet und die Platte wie vorgeschrieben an den Laptop mit USB2.0 und WinXP Home angeschlossen. Ein USB-Kabel lag der Platte bei.

Die Platte wurde am Laptop erst nach mehreren Versuchen erkannt.
Eine Formatierung mit NTFS gelang jedoch nicht, egal wie groß die dazu verwendeten PArtitionen waren.
Eine Formatierung mit FAT32 war möglich.

Das Anschließen der Platte an einen Win98 PC mit USB1.x, Installation der beiliegenden Treiber und formatieren mit FDISK und FAT32 klappte auch.

Das Formatieren selbiger Platte an einem weitern PC mit WinXP Professional und USB1.X klappte und das mit NTFS.

Das Anschließen der Platte an 2 weitere versch. PCs mit WinXP Professional und USB2.0 klappte gar nicht, die Platte wurde immer als unbekanntes Gerät erkannt.

Mein Verdacht ist, dass der Adapter der Platte Probleme mit USB2.0 hat!

Auf Anfrage beim Verkäufer (was nicht so direkt per E-Mail ging, dafür aber per Telefon) sagte man mir was ich erwartete:

Wir haben schon tausende von den Platten verkauft, so ein Problem hatten wir damit noch nie. Aber letztendlcih Ausschließen kann mans nicht, darin stimmten wir wenigstens überein.
Ich kann entweder von meinem Widerrufsrecht Gebrauch machen, oder die Platte als Gewährleistungsfall zurücksenden, woraufhin sie untersucht wird und bei Nichtfeststellung von Fehlern eine Gebühr von EUR 15,- erhoben wird. Zurücksenden entweder mit selbst bezahltem Porto oder man lässt sich eine Freeway-Marke zusenden, was ich dann getan habe!

Ja darf der denn das!? Bei den oben angegebenen Konstellationen hat er u.U. ne Konfig, bei der die Platte mit USB2.0 geht, dann bin ich der Dumme, löhne nochmal 15,- und hab ne Platte, die bei mir nicht tut (hab ich dem Verkäufer auch gesagt, dass es mir nichts bringt, wenn das Teil bei ihm funktioniert).
Dann bleibt nur Widerruf.

Wie seht ihr das?
Kennt sich jmd. damit aus?

Ich finde das nicht korrekt!

Ciao
 
Reth   Nutzer

16.02.2005, 16:39 Uhr

[ - Direktlink - ]
Thema: AmiGift verbindet sich nicht mehr!
Brett: Amiga, AmigaOS 4

Hallo allerseits,

bei mir verbindet sich AmiGift seit neuestem nicht mehr.
Hab alle Aktualisierungen vorgenommen und war auch mit der neusten Version schon problemlos online und konnte Daten austauschen.

Doch wenn ich es nun starte, steht immer nur "Starte daemon, bitte warten..." in der Statuszeile und es passiert nichts mehr!

Früher hat hier ein Klick auf Verbinden geholfen, aber auch der tut nicht. Es passiert einfach gar nichts!

Weiss da jmd. Rat?

Danke schon mal

Ciao
 
Reth   Nutzer

03.02.2005, 10:38 Uhr

[ - Direktlink - ]
Thema: GCC/G++ Anfängerprobleme die 2.
Brett: Programmierung

Danke für Deine Tips!

Noch ein paar Fragen.

Zitat:
Original von gni:
Zitat:
Reth:
ScreenModeDataC getScreenModeData();

Dir ist hoffentlich bewußt, daß Du hier ein Objekt zurückgibst. Vermutlich solltest Du ein const Referenz verwenden.

Das ist ne Sache, die ich an C++ noch nicht ganz verstanden habe. Zeiger unterscheiden sich ja von Referenzen, aber der Unterschied ist mir nicht so ganz klar. Zeiger sind ne Datenstruktur, mit der man z.B. auch rechnen kann, Referenzen sind ...?

Bei Java ist das einfacher, da sind alle Objekte Zeiger (ausser Strings).

Gibts denn ein gutes C++ Standardwerk, wo man die ganzen Sachen schön differenziert erklärt bekommt, auch Exceptions in C++?
Soviel weiss ich, dass wenn man in C++ ein Objekt einer Methode übergibt, eine Kopie des Objektes angelegt wird.

Bei Referenzen ist mir das nicht so ganz klar. Wenn ich nun ein Objekt in einer Klasse erzeuge und eine Referenz darauf einer aufrufenden Klasse zurückgebe. Wie lang ist diese Referenz dort dann gültig? Wass passiert mit der Referenz in der aufrufenden Klasse, wenn das Objekt, aus dem die Referenz zurückgegeben wurde out of scope geht?

Zitat:
Zitat:
ScreenModeRequestC::ScreenModeRequestC(
if ((scrMDRQ != NULL) && (AslRequestTags(scrMDRQ, TAG_END)))
}

Sowas in einem Konstruktor zu machen ist unklug, zumal Du keine Exception benutzt. Du erzeugst also ein Objekt, das unbenutzbar ist.

Darum hab ich auch schon nachgedacht, einen Zeiger auf das Objekt zurückzugeben, welcher dann NULL ist, wenn das Objekt nicht richtig erstellt werden konnte!
 
Reth   Nutzer

03.02.2005, 07:59 Uhr

[ - Direktlink - ]
Thema: GCC/G++ Anfängerprobleme die 2.
Brett: Programmierung

Zitat:
Original von Dr_X:

LDFLAGS = -L. -lamiga

--
(Amiga) µA1-C in A1000 Gehäuse aber mit Amiga OS4.0 pre


Danke! Schreib ich das einfach so ins Makefile oben rein, oder kommt das als Option an den G++ Aufruf?

 
Reth   Nutzer

02.02.2005, 21:34 Uhr

[ - Direktlink - ]
Thema: GCC/G++ Anfängerprobleme die 2.
Brett: Programmierung

Hab das Problem gelöst, es fehlte ScreenModeData.o im makefile.

Was muss ich denn angeben, damit er die Objektdateien der Amigalibs findet? Diese namentlich im makefile?

Danke schon mal für die bisherigen und evtl. weiteren Hilfen!
Ciao
 
Reth   Nutzer

02.02.2005, 20:40 Uhr

[ - Direktlink - ]
Thema: makelink liefert makelink: Unbekannter DOS-Packet-Request-Typ
Brett: Amiga, AmigaOS 4

Aahaa! Danke!
 
Reth   Nutzer

02.02.2005, 19:46 Uhr

[ - Direktlink - ]
Thema: makelink liefert makelink: Unbekannter DOS-Packet-Request-Typ
Brett: Amiga, AmigaOS 4

Hi,

woran kann das liegen?

Gibts ne andere Möglichkeit nen Link auf ne Datei einzurichten?

Danke schon mal
Ciao
 
Reth   Nutzer

02.02.2005, 19:03 Uhr

[ - Direktlink - ]
Thema: GCC/G++ Anfängerprobleme die 2.
Brett: Programmierung

Zitat:
Original von Solar:
Zu wenig Informationen.

Wie sieht Deine Kommandozeile aus, mit der Du den Fehler reproduzierst?


Einfach nur make aus dem GoldEd mittels Rexx Script. Das Makefile sieht so aus:

projectPath = <Pfad<

ScreenMode : ScreenModeRequestC.o ScreenModeDataC.o ScreenModeHookC.o ScreenMode.o
g++ -I $(projectPath) -o SCreenMode ScreenModeRequestC.o ScreenModeHookC.o ScreenMode.o

ScreenMode.o : ScreenMode.cc ScreenModeRequestC.h ScreenModeHookC.h
g++ -I $(projectPath) -c ScreenMode.cc
ScreenModeRequestC.o : ScreenModeRequestC.cc ScreenModeRequestC.h ScreenModeDataC.h
g++ -I $(projectPath) -c ScreenModeRequestC.cc
ScreenModeDataC.o : ScreenModeDataC.cc ScreenModeDataC.h
g++ -I $(projectPath) -c ScreenModeDataC.cc
ScreenModeHookC.o : ScreenModeHookC.cc ScreenModeHookC.h Constants.h
g++ -I $(projectPath) -c ScreenModeHookC.cc

clean :
delete ScreenModeHookC.o ScreenModeDataC.o ScreenModeRequestC.o ScreenMode.o

Zitat:
Und... "innere Objekte" und "erzeugen von A im Konstruktor" riecht ziemlich faul. Kannst Du den fraglichen Quellcode hier mal posten?

Hier der Header von besagter Klasse A:

#include <exec/types.h>

class ScreenModeDataC
{
public:
ScreenModeDataC();
ScreenModeDataC(ULONG width, ULONG height, ULONG depth, ULONG id);

ULONG getWidth() {return displayWidth;};
ULONG getHeight(){return displayHeight;};
ULONG getDepth() {return displayDepth;};
ULONG getID() {return displayID;};

private:
ULONG displayWidth, displayHeight, displayDepth, displayID;
};

und hier der von B:

#include <utility/hooks.h>
#include <libraries/asl.h>
#include <clib/asl_protos.h>

#include <ScreenModeDataC.h>

class ScreenModeRequestC
{
public:
ScreenModeRequestC(UWORD minWidth, UWORD minHeight, UWORD minDepth, UWORD maxWidth, UWORD maxHeight, UWORD
maxDepth, struct Hook *filterFunc);

ScreenModeDataC getScreenModeData();

private:
ScreenModeDataC scrMDData;
};


Implementierung von A:

#include <ScreenModeDataC.h>

ScreenModeDataC::ScreenModeDataC()
{
displayWidth = 0;
displayHeight= 0;
displayDepth = 0;
displayID = 0;
}

ScreenModeDataC::ScreenModeDataC(ULONG width, ULONG height, ULONG depth, ULONG id)
{
displayWidth = width;
displayHeight= height;
displayDepth = depth;
displayID = id;
}

und von B:

#include <libraries/asl.h>
#include <clib/asl_protos.h>

#include <ScreenModeRequestC.h>

ScreenModeRequestC::ScreenModeRequestC(UWORD minWidth, UWORD minHeight, UWORD minDepth, UWORD maxWidth, UWORD maxHeight,
UWORD maxDepth, struct Hook *filterFunc)
{
struct ScreenModeRequester *scrMDRQ = (struct ScreenModeRequester *)AllocAslRequestTags(ASL_ScreenModeRequest,
ASLSM_InitialInfoOpened, TRUE,
ASLSM_DoWidth, TRUE,
ASLSM_DoHeight, TRUE,
ASLSM_DoDepth, TRUE,
ASLSM_DoOverscanType, TRUE,
ASLSM_DoAutoScroll, TRUE,
ASLSM_MinWidth, minWidth,
ASLSM_MaxWidth, maxWidth,
ASLSM_MinHeight, minHeight,
ASLSM_MaxHeight, maxHeight,
ASLSM_MinDepth, minDepth,
ASLSM_MaxDepth, maxDepth,
ASLSM_FilterFunc, filterFunc,
ASLSM_PopToFront, TRUE,
ASLSM_Activate, TRUE, TAG_DONE);

if ((scrMDRQ != NULL) && (AslRequestTags(scrMDRQ, TAG_END)))
{
scrMDData = ScreenModeDataC(scrMDRQ->sm_DisplayWidth, scrMDRQ->sm_DisplayHeight, scrMDRQ->sm_DisplayDepth,
scrMDRQ->sm_DisplayID);
}
}

ScreenModeDataC ScreenModeRequestC::getScreenModeData()
{
return scrMDData;
}


Wie gesagt, es fehlen das Öffnen der Libs und noch ein paar andere Klassen. Aber um die beiden gehts erstmal.

Ausgabe von make:

ScreenModeRequestC.o(.text+0x40): undefined reference to 'ScreenModeDataC::ScreenModeDataC(void)'
ScreenModeRequestC.o(.text+0x14a): undefined reference to 'ScreenModeDataC::ScreenModeDataC(unsigned long, unsigned long, unsigned long, unsigned long)'


Keine Ahnung was fehlt? Das Einzige, was ich mir vorstellen kann, ist dass er die Objektdateien nicht findet! Oder isses was anderes?
 
Reth   Nutzer

02.02.2005, 13:00 Uhr

[ - Direktlink - ]
Thema: Wie viele CSPPC bzw. BPPC sind noch in Betrieb?
Brett: Amiga, AmigaOS 4

Hi, hab ne CyberstormPPC mit CVPPC und teste darauf AOS4 Beta (allerdings in den letzten Monaten nicht mehr so, wg. Zeitmangel).

T-Shirt hab ich noch keins bekommen (ist mir auch egal, will den Rabatt), hab damal EUR 50,- für so nen Coupon an KDH bezahlt. Dort meinte man, dass das von AInc abhinge. Leider gibts weder von denen noch von KMos irgendwelche Kontaktdaten.

Sehr dubios!
 
Reth   Nutzer

02.02.2005, 08:22 Uhr

[ - Direktlink - ]
Thema: GCC/G++ Anfängerprobleme die 2.
Brett: Programmierung

Schönen Tach nochmals,

hab mal wieder Probleme mit besagten Tools.

Das Compilieren der einzelnen Klassen aus dem Makefile heraus klappt hervorragend, die Objekte werden erzeugt.
Aber dann versagt das Linken.

An einigen Stellen meint ld: undefined reference auf asl und graphics.
Das kann daran liegen, dass ich im Code vergessen habe die Libraries zu öffnen, aber deren Funktionen verwende. Das lässt sich beheben.

Was ich aber nicht verstehe ist folgendes:

Ich habe 2 Klassen A und B. A wird in B verwendet, es soll ein Objekt vom Typ A zur Laufzeit erzeugt werden. A hat einen parameterlosen Konstruktor und einen mit Parameteren. Der parameterlose Konstruktor ist dafür, dass der Compiler zufrieden ist, da bei C++ anscheinend beim Erstellen eines Objektes welches weitere Objekte erzeugt (in meinem Fall beim Erstellen von B) immer auch der Konstruktor der inneren Objekte gerufen wird (hab ich aus einem umfassenden C++ Tutorial), so dass zur Compilezeit schon geprüft wird. In meinem Fall wird in B ein Objekt vom Typ A erzeugt (wenn ichs gerad genau weiss, sogar im Konstruktor von B), darum prüft der Compiler, ob es von A einen paramterlosen Konstruktor gibt, da ich A nicht mit : hinter den Konstruktoraufruf von B gesetzt habe.

Soweit so gut. Nun sind beide Klassen in eigenen Headerdateien deklariert, wobei der Header von B den von A inkludiert und das Sourcefile von B den Header von B (das Sourcefile von A natürlich den Header von A).
Damit ist der Compiler zufrieden, kennt alles und erzeugt Objektfiles.
Der Linker jedoch mosert rum, dass es in B bei text+0x40 (oder so) eine "undefined reference to A()" gibt und bei text+0x41 eine "undefined reference to A(param1, param2, ...).
Warum das denn? Was fehlt da noch? muss ich ausser der -I Option beim g++ noch ne Option beim Linker angeben, wo er die Objektdateien findet?
Muss man libamiga oder ähnliches angeben, damit der die OS-Libraries u.dgl. findet?

Fragen über Fragen.

Wenn die Fragen zu blöd, lächerlich, offensichtlich etc. sind, wäre ich auch für ein paar weiterhelfende Links auf Tutorials, FAQ, häufige Probleme mit GCC und Konsorten, etc. dankbar!

Ciao
 
Reth   Nutzer

29.01.2005, 23:00 Uhr

[ - Direktlink - ]
Thema: C++ Problem: Objektfreigabe
Brett: Programmierung

@solar, holger & co.

Ich hoffe, ihr lest hier wieder rein!

Hab noch mal ne Frage zu den eingangs erwähnten lokalen Objekten, die man in Methoden anlegen kann:

A Klasse:Methode(Param)
{
A var = "Hallo!";
return A;
}


Wie sieht es mit dem Destruktor von A aus? Wann wird der gerufen?
Wenn diese Methode hier verlassen wird, oder die aufrufende (falls dort die von obiger Methode erhaltene Variable nicht anderweitig weitergegeben wird)?

Danke schon mal
Ciao
 
Reth   Nutzer

25.01.2005, 12:21 Uhr

[ - Direktlink - ]
Thema: pci grafikkarte und alles drüber ?
Brett: Amiga, AmigaOS 4

Hi,

machs doch so wie ich: Scandoubler rein und Monitorumschalter.
Das macht summa sumarum ein kleines Kästchen und 2 Kabel mehr auf und um den Schreibtisch!

Ciao
 
Reth   Nutzer

18.01.2005, 12:31 Uhr

[ - Direktlink - ]
Thema: Amiga-User Treffen Stuttgart
Brett: Amiga, AmigaOS 4

Hi auch,

komme ebenfalls aus Stuttgart und dachte nicht, dass es hier in der Ecke noch so viele aktive User gibt! Toll!

Da wir seit 05.12.2004 unseren ersten Nachwuchs haben, sieht es bei mir zeitliche momentan sehr sehr schlecht aus. Aber Interesse besteht auf jeden Fall, zumindest den Kontakt aufrecht zu erhalten!

Der Nachwuchs wird ja auch mal größer und vielleicht kann ich mich dann eher mal freimachen!

Ciao
 
Reth   Nutzer

17.01.2005, 21:20 Uhr

[ - Direktlink - ]
Thema: GCC und Hooks?
Brett: Programmierung

Zitat:
Original von gni:
Die Filterfunktion _muß_ eine statische Methode sein! Dann kannst Du auch anstandslos mit HOOKFUNC casten oder besser noch mit reinterpret_cast<>.


Danke für die Tips.
Alles umgesetzt, vielen Dank euch!

Was ich nicht wusste war, dass ich

h_Entry=HookEntry;

ebenfalls so angeben muss, damit kein Compilerfehler kommt:

reinterpret_cast<ULONG (*)()>(HookEntry);

Ich dachte HookEntry ist bereits vom richtigen Typ!?

BTW: Wo gibts denn eine Beschreibung der GCC/G++ Fehlermeldungen? War bei Google nicht erfolgreich und bei der GG Installation sind nur make Fehler beschrieben!

Danke nochmals
Ciao

[ Dieser Beitrag wurde von Reth am 17.01.2005 editiert. ]
 
Reth   Nutzer

17.01.2005, 12:32 Uhr

[ - Direktlink - ]
Thema: GCC und Hooks?
Brett: Programmierung

[quote]
Original von Holger:
Zitat:
Es geht nicht um den Rückgabewert, sondern um die Parameter. Du versuchst einer Variable vom Typ "Funktion ohne Parameter" eine Funktion mit den Parametern "Hook*,Object*,void*" zuzuweisen.
Da muss ein kritischer Compiler was gegen sagen.

mfg
--
Good coders do not comment. What was hard to write should be hard to read too.


Das stimmt! Aber wie solls denn dann funktionieren? In allen Beispielen zu HookEntry sind die in h_subEntry eingetragenen Funktionen mit diesen 3 Parametern ausgerüstet. HookEntry dient ja nur dazu selbige Parameter auf den Stack zu legen - ohne diese Parameter machen die eigenen Hookfunktionen nicht viel Sinn!

Schafft ein cast der HookMethode auf ULONG (*)() da Abhilfe? (Würde mir als nächstes einfallen.)
 
Reth   Nutzer

17.01.2005, 12:11 Uhr

[ - Direktlink - ]
Thema: GCC und Hooks?
Brett: Programmierung

Hallo nochmals,

also ich steig da noch nicht so durch, der GCC/G++ scheint ein schwieriger Fall zu sein, aber im positiven Sinne, wenn man folgendes Problem betrachtet:

Nach dem inkludieren der clib/alib_protos.h wie gni vorschlug, konnte ich die HookEntry-Funktion der Hook-Struktur bei h_entry zuweisen.
In h_subEntry habe ich wie immer meine Filtermethode eingetragen.

In meinem bisherigen C++ Compiler (ohne HookEntry-Funktion, sondern mit Registerparametern) sah die folgendermaßen aus:

ULONG ScreenModeHookC::SMFilterFunc(Hook *hook, ULONG p, ScreenModeRequester *scrMd)

Das klappte immer. In allen Beispielen der RKRMs, Autodocs, Internet etc. hatten die Funktionen immer Rückgabewert ULONG!

Nun meldet der G++ aber folgenden Fehler:

ScreenModeHookC.cc: In method 'ScreenModeHookC::ScreenModeHookC(void *)':
ScreenModeHookC.cc:16: assignment to 'ULONG (*)()' from 'ULONG (*)(Hook *,
Object *, void *)'
ScreenModeHookC.cc:17: no matches converting function 'SMFilterFunc' to type
'ULONG (*)()'
ScreenModeHookC.h:18:
candidates are: ULONG ScreenModeHookC::SMFilterFunc(Hook *, long unsigned
int, ScreenModeRequester *)
make: *** [ScreenModeHookC.o] Error 1

Was will er damit sagen? Die Filtermethode gibt bisher immer nen Integerwert (ULONG) zurück, muss ich die nun auf ULONG * umstellen?
Dann muss ich wohl die Adresse des Rückgabewertes ermitteln und zurückgeben!? Oder wie?

Habe meine Filtermethode mit cast auf HOOKFUNC und ohne in h-SubEntry probiert einzutragen, immer das gleiche Ergebnis.

Wo liegt denn hier das Typproblem?
Kann mir das einer sagen?

Danke schon mal!
Ciao
 
Reth   Nutzer

05.01.2005, 21:14 Uhr

[ - Direktlink - ]
Thema: GCC und Hooks?
Brett: Programmierung

Zitat:
Original von gni:

Da hast Du Pech: Der C++ Compiler unterstützt keine Registerargumente! Entweder Du implementierst das mit C oder Du benutzt HookEntry() und eine statische Klassenfunktion.


Hast Du da zufällig ein Codebeispiel für?

Zitat:
Typ und Parameter Deiner eigenen Funktion müssen exakt dem entsprechen was die Hookstruktur erwartet. Du mußt entweder einen C oder besser einen der C++ casts verwenden, damit es "passt".

Wie sieht denn ein C++ cast aus (sorry für die dumme Frage)?

Danke
Ciao

[ Dieser Beitrag wurde von Reth am 05.01.2005 editiert. ]
 
 
Erste << 48 49 50 51 52 -53- 54 55 56 57 58 Letzte Ergebnisse der Suche: 1858 Treffer (30 pro Seite)

Suchbegriffe
Schlüsselwörter      Benutzername
Suchoptionen
Nur in diesen Foren suchen
   nur ganze Wörter
Nur Titel anzeigen
alle Treffer anzeigen

.
Impressum | Datenschutzerklärung | Netiquette | Werbung | Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten.
.