[C++]Compiler Bug? (free borland ding)

Pagina: 1
Acties:

  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
hier ook al in geen maanden meer gepost maar ja, nu heb ik toch echt jullie hulp nodig :P

Ik ben sinds kort bezig met C++, dus maar eens die compiler van borland gedownload, geen problemen mee, tot net. Nu weet ik niet of het aan de compiler ligt, of dat ik gewoon iets heel stoms doe, maar ik kan niet bedenken wat ik nou fout doe. Anyways, hier komt het stukje code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void LaatZien(const List<int> &rlijst)
{
    cout << "Deze lijst bevat " << rlijst.GetLength() << " items:\n";
    for(int i = 1; i <= rlijst.GetLength(); i++)
    {
        cout << "Lijst[" << i << "] bevat:\t";
        if((rlijst[i])->GetPointer())
            cout << *((rlijst[i])->GetPointer());
        else 
            cout << "\tNULL";
    cout << "\n";
    }
    cin.get();
}

Nou is het vreemde met dit ding, dat als ik die template in het argument niet const verklaar, hij het gewoon doet. Maak ik em echter constant zoals ie hier is, dan komt de compiler met een hele vage error:
code:
1
2
3
4
Error E2094 ListTest.cpp 213: 'operator+' not implemented in type 'List<int>' 
for arguments of type 'int' in function LaatZien(const List<int> &)
Error E2094 ListTest.cpp 214: 'operator+' not implemented in type 'List<int>' 
for arguments of type 'int' in function LaatZien(const List<int> &)

Line 213 is die line waar dat if() statement begint. Enige wat ik kan bedenken waarom het niet zou kunnen werken is omdat hij cost templates niet leuk vindt ofzo? Maar misschien kunnen jullie me uit de droom helpen, en gewoon zeggen dat ik ergens een hele domme fout heb gemaakt.
Bij voorbaat dank.

Only dead fish go with the flow


  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
Als iemand de rest van de source wil moet ie dat maar ff zeggen, ik zie iig niet waarom de compiler daaro operator+ zou willen aanroepen.

Only dead fish go with the flow


Verwijderd

kan een reference const zijn?

heb verder nooit met borland classes gwerkt, en zelfs dan verwacht ik niet deze foutmelding

(snap er dus ook niet veel van)

  • rstegers
  • Registratie: November 2001
  • Laatst online: 14-09 08:48
Mag je me even uitleggen wat de functie getPointer doet... en wat rlist[i] precies terug geeft.

Je roept nl rlist[i]->getPointer() wat gelijk is aan (*(rlist[i])).getPointer()

Is dat de bedoeling ??

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Het type 'Lijst' is geen standaard C++. Ergens staat vast of een typedef of een class. Kan je geven wat 'Type' voorstelt?
Op vrijdag 18 januari 2002 01:58 schreef Toiletman het volgende:
code:
1
2
3
4
5
6
7
8
9
10
11
for(int i = 1; i <= rlijst.GetLength(); i++)
    {
        cout << "Lijst[" << i << "] bevat:\t";
        if((rlijst[i])->GetPointer())
            cout << *((rlijst[i])->GetPointer());
        else 
            cout << "\tNULL";
    cout << "\n";
    }
    cin.get();
}
Je for loop is al fout. Je begint bij 0 en je eindigt wanneer i == rlijst.GetLength() (1 voorbij einde), dus
code:
1
for(int i = 0; i < rlijst.GetLength(); i++)

Verder zou ik nog eens naar de STL kijken (alhoewel ik me vraag in hoeverre die borland compiler dat ondersteund). Dat stukje met die GetPointer() is ook beetje vaag gedaan; wat voor objecten zitten er in die lijst?

  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//********************List Declaration********************
template <class I>
class List
{
    public:
    // constructors NO COPY CONSTRUCTOR, NEVER PASS BY VALUE!!!
    List():itsHead(NULL),itsLength(0);
    List(int x); 
    ~List();
    // operators
    Item<I>* operator[](int); // not used as a normal array (IE List[1] returns the first item)
    // accessors (need more???)
    int GetLength(){ return itsLength; }
    // other member functions
    void AddItem(I&);
    void DeleteItem(int);
    protected:
    Item<I>* itsHead;
    int itsLength;
};

itlength en array werken trouwens niet zoals in de standaard array, ze beginnen te tellen bij 1 en niet bij 0, dus wat jij over m'n for loop zegt, Orphix, is niet waar.

Only dead fish go with the flow


  • whoami
  • Registratie: December 2000
  • Laatst online: 06:24
Op vrijdag 18 januari 2002 02:11 schreef Brute_Bertus het volgende:
kan een reference const zijn?

heb verder nooit met borland classes gwerkt, en zelfs dan verwacht ik niet deze foutmelding

(snap er dus ook niet veel van)
Ik vermoed van wel. Een pointer naar een const kan toch ook?

als je nu
code:
1
void LaatZien(const List<int> &rlijst)

nu eens vervangt door
code:
1
void LaatZien(const List<int> * rlijst)

Dan moet je natuurlijk wel in uw functie zelf ook wat aanpassingen doen, ...

https://fgheysels.github.io/


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:39
Kweenie maar het lijkt alsof de implementatie van die List iets gaat doen met de inhoud daarvan, wat niet mag als je hem const doorgeeft.

Mag ik vragen waarom je niet gewoon std::list gebruikt?

[edit]
Mag je niet gewoon zeggen:
code:
1
2
3
4
for (...)
{
    cout<<rlijst[i]<<"\n";
}

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 23:11
De List class die je hebt is gewoon niet Ok. Sowieso is het al een belachelijke class, het is een 1-based array ipv een lijst, maar de class moet evengoed aangeven wat er wel en niet met een const/non-const class kan, en dat doet ie dus niet goed. Dus jouw code is niks mis mee & compiler is ook niks mis mee

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
whoami schreef:
als je nu
code:
1
void LaatZien(const List<int> &rlijst)

nu eens vervangt door
code:
1
void LaatZien(const List<int> * rlijst)

Dan moet je natuurlijk wel in uw functie zelf ook wat aanpassingen doen, ...
dit zou misschien wel kunnen, maar ik wil een reference gebruiken... want anders moet je weer met pointers gaan kloten, en die willen weer adressen hebben enzo... references is makkelijker.
Op vrijdag 18 januari 2002 09:10 schreef farlane het volgende:
Kweenie maar het lijkt alsof de implementatie van die List iets gaat doen met de inhoud daarvan, wat niet mag als je hem const doorgeeft.

Mag ik vragen waarom je niet gewoon std::list gebruikt?

[edit]
Mag je niet gewoon zeggen:
code:
1
2
3
4
for (...)
{
    cout<<rlijst[i]<<"\n";
}
Het is nu juist het probleem dat ik niet kan zien wat er nu mis gaat, want het enige wat die LaatZien functie doet is [] aanroepen, en die verandert niks... en de error is ook iets met operator+ en wat die er mee te maken heeft snap ik al helemaal niet.
std::list gebruik ik niet omdat zelf een list schrijven wat leerzamer is (ben net begonnen met c++), en omdat ik ook nogal weinig snapte van al die shit in de stdlist.
en cout << rlijst[i] << "\n"; mag niet omdat ik << niet heb overloaded voor een item<I>* (returntype van operator[](int) van lijst).
Op vrijdag 18 januari 2002 09:36 schreef MSalters het volgende:
De List class die je hebt is gewoon niet Ok. Sowieso is het al een belachelijke class, het is een 1-based array ipv een lijst, maar de class moet evengoed aangeven wat er wel en niet met een const/non-const class kan, en dat doet ie dus niet goed. Dus jouw code is niks mis mee & compiler is ook niks mis mee
M'n list class is helemaal niet zo belachelijk... bij een array kan je niet een willekeurige waarde d'r tussenuit halen of d'r weer inzetten.... dus daarom heb ik dees geschreven, hij is heel erg basic enzo, maar ja ik ben ook maar een beginneling :-). Maareh, zou je ff kunnen uitleggen wat je nou precies bedoelt met "maar de class moet evengoed aangeven wat er wel en niet met een const/non-const class kan"? Zou je gelijk even willen vertellen waar de compiler die operator+ vandaan haalt?

Only dead fish go with the flow


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 22:39
std::list gebruik ik niet omdat zelf een list schrijven wat leerzamer is.
Is waar, als je je eigen klasse daarna maar niet echt gaat gebruiken ;)
cout << rlijst[i] << "\n"; mag niet omdat ik << niet heb overloaded voor een item<I>* (returntype van operator[](int) van lijst).
Naar mijn idee moet een Lijst<int> met de [] operator een int teruggeven, en niet een pointer naar een Item<int>.


Wat is de implementatie van Lijst::GetPointer() en Lijst::operator[]?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
Op vrijdag 18 januari 2002 13:47 schreef farlane het volgende:

[..]

Is waar, als je je eigen klasse daarna maar niet echt gaat gebruiken ;)
[..]

Naar mijn idee moet een Lijst<int> met de [] operator een int teruggeven, en niet een pointer naar een Item<int>.


Wat is de implementatie van Lijst::GetPointer() en Lijst::operator[]?
Lol, eigenlijk was ik wel van plan em te gaan gebruiken :Y)

Misschien is het idd slim om de [] operator de klasse te laten returnen ipv een pointer naar een item :), dan ziet m'n code d'r ook gelijk een stuk cleaner uit 8-).

Hiero is iig de implementatie van GetPointer() en operator[]:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
//**************************Item Declaration**************************

template <class I>
class Item
{
    public:
    // Constructors
    Item();
    ~Item(); // Does not delete pointers on free store!!
    // Accessors
    I* GetPointer() { return itsPointer; }
    Item<I>* GetNext() { return itsNext; }
    // Other Member Functions
    void SetPointer(I& rhs) { itsPointer = &rhs; }
    void SetNext(Item<I>* rhs) { itsNext = rhs; }
    protected:
    I* itsPointer;
    Item<I>* itsNext;
};

// Operator[x] returns the item with offset x (the first item(itsHead) = 1
template <class I>
Item<I>* List<I>::operator[](int x)
{
    if(x > itsLength || x <= 0)
        return NULL;
    Item<I>* temp = itsHead;
    for(int i = 1; i != x; i++)
        {
        temp = temp->GetNext();
        }
    return temp;
}

Only dead fish go with the flow


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

als je m zelf gemaakt heb, waarom heb je m dan in hemelsnaam geimplementeerd als een 1-based array? :? Ik bedoe, C arrays zijn ook 0-based, waarom jouw Lijst dan niet? Het is alleen maar lastig om met verschillende dingen rekening te houden. Veel beter kun je gewoon alles op dezelfde manier doen, dat scheelt een hoop ergenis en fouten :)

anyway, ik kan nog steeds geen mogelijke operator+ ontdekken :?

.edit: afgezien van die wazige error, ik zie trouwens net dat je klasse helemaal geen const functies bevat! Dat is dus iig fout, maar dan komt borland wel met een hele rare error

.edit2: zoals MSalters al zei dus op een vage manier :)


je moet alle functies die niets aan de klasse veranderen als const declareren (nou ja, je moet helemaal niets, maar dat is gebruikelijk :)). Functies die niet const zijn mogen ook niet aangeroepen worden op een const instantie van een klasse.

Dat gaat zo:
code:
1
2
3
4
template<class T> int Lijst::GetLength () const   // <-- hier staat const
{
    return itsLength;
}

en dat moet je ook doen bij je operator [], en ook nog eens bij die Item<T> klasse

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Err... ik loop met de de trial versie ook tegen een vage iets aan:
code:
1
2
3
4
5
const int maxScrollingFields = 2;

scrollableField *scrollingField[maxScrollingFields];
for (int i=0; i<maxScrollingFields; i++)
      scrollingField[i] = new scrollableField;

Dit is EXACT volgens boek en en helpfile, en toch spuugt de compiler de volgende errors uit bij de for statement:

- declaration terminated incorrectly
- declaration syntax error
- multiple declaration for 'i'
- earlier declaration of 'i'
- declaration syntax error (ja, 2x)

Dus ook met een array in een for lus. Bug :?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Dat van de 1-based array, verander dat ook, dat is voor je mede-programmeur alsmede voor jezelf (over een paar maaden) veel duidelijker. Volg de standaard. Ik geloof dat Borland in haar TString ook zo'n index heeft, zeer frustrerend.

Verder zie ik ook niet waar die operator+ vandaan komt. Kan je niet eens gaan zoeken naar een '+' in je code?

Verder zijn er genoeg tutorials te vinden op internet om een basic lijst klasse te maken. Je kan kijken hoe die werken. Je hebt gelijk, dit is een goede oefening om het concept te begrijpen. Probeer wel zo snel mogelijk op een 'echte' (leest standaard, STL list) list over te stappen. Het is even doorbijten maar echt de moeite waard!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op vrijdag 18 januari 2002 17:59 schreef Zotty het volgende:
Err... ik loop met de de trial versie ook tegen een vage iets aan:
code:
1
2
3
4
5
const int maxScrollingFields = 2;

scrollableField *scrollingField[maxScrollingFields];
for (int i=0; i<maxScrollingFields; i++)
      scrollingField[i] = new scrollableField;

Dit is EXACT volgens boek en en helpfile, en toch spuugt de compiler de volgende errors uit bij de for statement:

- declaration terminated incorrectly
- declaration syntax error
- multiple declaration for 'i'
- earlier declaration of 'i'
- declaration syntax error (ja, 2x)

Dus ook met een array in een for lus. Bug :?
dat lijkt er meer op dat ie de klasse scrollableField niet kent (is het niet ScrollableField? Let op die hoofdletter S :))

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op vrijdag 18 januari 2002 18:04 schreef OiSyN het volgende:

[..]

dat lijkt er meer op dat ie de klasse scrollableField niet kent (is het niet ScrollableField? Let op die hoofdletter S :))
't is een struct :)
code:
1
2
3
4
5
struct scrollableField {
      int fieldLength;
      char text[64];
      int scrollSpeed;
};

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op vrijdag 18 januari 2002 18:06 schreef Zotty het volgende:

[..]

't is een struct :)
code:
1
2
3
4
5
struct scrollableField {
      int fieldLength;
      char text[64];
      int scrollSpeed;
};
whatever ;)
is ie wel gedeclareerd voor die code? En compilet ie wel met C++ (dus niet C)? Anders zou het idd gewoon moeten werken :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op vrijdag 18 januari 2002 18:16 schreef OiSyN het volgende:

[..]

whatever ;)
is ie wel gedeclareerd voor die code? En compilet ie wel met C++ (dus niet C)? Anders zou het idd gewoon moeten werken :)
Die lus is juist de declaratie :Y) En het compiled met C++ ja.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op vrijdag 18 januari 2002 18:40 schreef Zotty het volgende:

[..]

Die lus is juist de declaratie :Y) En het compiled met C++ ja.
nee ik bedoel de declaratie van die struct, niet van die array :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op vrijdag 18 januari 2002 18:45 schreef OiSyN het volgende:

[..]

nee ik bedoel de declaratie van die struct, niet van die array :)
Dat is dit:
code:
1
scrollableField *scrollingField[maxScrollingFields];

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

neeeheee dat is de declaratie van de array :)

de declaratie van de struct is
code:
1
2
3
4
5
struct scrollableField {
      int fieldLength;
      char text[64];
      int scrollSpeed;
};

wat ik me dus afvroeg is of dat voor de declaratie van de array komt te staan, oftewel dat de compiler op dat punt wel weet wat een scrollableField is :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op vrijdag 18 januari 2002 19:30 schreef OiSyN het volgende:
neeeheee dat is de declaratie van de array :)

de declaratie van de struct is
code:
1
2
3
4
5
struct scrollableField {
      int fieldLength;
      char text[64];
      int scrollSpeed;
};

wat ik me dus afvroeg is of dat voor de declaratie van de array komt te staan, oftewel dat de compiler op dat punt wel weet wat een scrollableField is :)
Err... alles het juiste naampje geven is soms nog een beetje verwarrend |:(

De declaratie van de struct staat netjes boven de declaratie van de struct. Netjes volgens de regels :)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op vrijdag 18 januari 2002 19:37 schreef Zotty het volgende:

[..]

Err... alles het juiste naampje geven is soms nog een beetje verwarrend |:(

De declaratie van de struct staat netjes boven de declaratie van de struct. Netjes volgens de regels :)
lastig he ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op vrijdag 18 januari 2002 20:33 schreef OiSyN het volgende:

[..]

lastig he ;)
AAARG nee he |:(

Ik bedoel dus dat de declaratie van de struct boven de declaratie van de array staat.

/me leest die zin nog een keer voor de zekerheid

Verwijderd

'k denk van dan probeer ik het maar stackbased ipv dynamisch, maar dat werkt dus ook niet :(
code:
1
2
3
const int maxScrollingFields = 2;
scrollableField scrollingField[maxScrollingFields];
scrollingField[0].fieldLength = 27;

Iemand een idee wat dit kan zijn?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

koppiepeest je error eens letterlijk (en dan ook met de regel erbij waar die error optreedt)
"Koningin Beatrix moet een account op GoT moet nemen, dat bevordert de sociale integratie met het volk"
dan maakt ze gelijk 200 techposts zodat ze de HK in kan :P

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op vrijdag 18 januari 2002 23:39 schreef OiSyN het volgende:
koppiepeest je error eens letterlijk (en dan ook met de regel erbij waar die error optreedt)
[..]

dan maakt ze gelijk 200 techposts zodat ze de HK in kan :P
Komt ie ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[C++ Error] gen_graphicallcd.cpp(65): E2021 Array must have at least one element
[C++ Error] gen_graphicallcd.cpp(65): E2238 Multiple declaration for 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(57): E2344 Earlier declaration of 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(65): E2141 Declaration syntax error
[C++ Error] gen_graphicallcd.cpp(66): E2021 Array must have at least one element
[C++ Error] gen_graphicallcd.cpp(66): E2238 Multiple declaration for 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(65): E2344 Earlier declaration of 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(66): E2141 Declaration syntax error
[C++ Error] gen_graphicallcd.cpp(67): E2021 Array must have at least one element
[C++ Error] gen_graphicallcd.cpp(67): E2238 Multiple declaration for 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(66): E2344 Earlier declaration of 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(67): E2141 Declaration syntax error
[C++ Error] gen_graphicallcd.cpp(69): E2238 Multiple declaration for 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(67): E2344 Earlier declaration of 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(69): E2141 Declaration syntax error
[C++ Error] gen_graphicallcd.cpp(70): E2238 Multiple declaration for 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(69): E2344 Earlier declaration of 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(70): E2141 Declaration syntax error
[C++ Error] gen_graphicallcd.cpp(71): E2238 Multiple declaration for 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(70): E2344 Earlier declaration of 'scrollingField'
[C++ Error] gen_graphicallcd.cpp(71): E2141 Declaration syntax error

Enne, als Willempie aan de macht komt heeft Bea genoeg tijd om die 200 techposts te posten :P

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

welke regel is regel 65?

en misschien ben je ergens ervoor een ; of } vergeten

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op vrijdag 18 januari 2002 23:48 schreef OiSyN het volgende:
welke regel is regel 65
Dat is deze
code:
1
scrollingField[0].fieldLength = 27;

En dat staat ook t/m regel 71, alleen dan met andere members en elementen (zeg ik het zo goed :?)

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

dit schiet ook niet op

post eens al je code :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Op zaterdag 19 januari 2002 00:50 schreef OiSyN het volgende:
dit schiet ook niet op

post eens al je code :)
Wil het je best mailen, maar om nou 40k aan sourcecode te gaan posten lijkt me niet niet zo'n goed idee ;) Is maar iets van 1000 regels aan code hehe :+

Hoe dan ook, inmiddels heb ik het stukje code al aan 4 verschillende mensen (met een stuk meer programmeerervaring dan ik) gevraagd/laten zien, en stuk voor stuk zeggen ze allemaal dat het moet werken....

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

ok dan sluit ik me daar wel bij aan :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Ff een paar dingen geprobeerd en daar is het volgende uitgekomen; de code compileerd goed zolang de applicatie geen DLL is waarbij de code niet in de DllEntryPoint() functie staat. Als console app werkt het, als gewone win32 app en als DLL, maar dan moet de code wel in DllEntryPoint() staan. Waarom is dat? 'k heb nog nooit dingen in DllEntryPoint() gezet en nooit problemen mee gehad. In het boek 'C++ builder in 21 days' staat zelfs dat je die betreffende functie gewoon leeg kunt laten en er verder geen aandacht aan moet besteden. Vrij vaag dus :?

Btw, in de Win32 API help file staat 'For more information, see the documentation included with your development tools.' en in de help van Builder staat geen r*k over die functie. Kan iemand mij uit leggen wat DllEntryPoint precies doet? Ik weet dat het net zoiets is als main, maar dan voor een DLL.

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

dan moet je even bij DllMain () kijken, daar staat een hoop informatie over TLS enzo

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
ik heb m'n lijst class nu ff herschreven, de operator[] werkt nu net als in een normale array... verder doet alles het nu goed... alleen werkt const nog steeds niet zoals ik wil :-(
als ik bijvoorbeeld een member functie const declare, dan wil ik niet dat die functie automatisch een const object returned.... wat de compiler d'r dus wel van maakt, dit is niet mijn bedoeling, en het is toch ook niet de bedoeling van een functie const declaren of wel soms?

Ik heb trouwens ook nog ff m'n source doorzocht op +, maar dat komt dus echt nergens voor, dus ik snap echt niet hoe de compiler met die operator+ bug aankomt... heeel vaag

Only dead fish go with the flow


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op zondag 20 januari 2002 17:21 schreef Toiletman het volgende:
als ik bijvoorbeeld een member functie const declare, dan wil ik niet dat die functie automatisch een const object returned.... wat de compiler d'r dus wel van maakt, dit is niet mijn bedoeling, en het is toch ook niet de bedoeling van een functie const declaren of wel soms?
Dan heb je een serieuze design-fout

Als je een const object hebt, mag je er dus niets aan veranderen. Als je een ander object opvraagt via dat const object, moet dat object dus ook const zijn, anders kun je m alsnog wijzigen!

Dus je moet wel een const object terug geven

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
mmmz...
da's best minder dan.... toch vind ik het raar... als ik een object een pointer uit wil laten braken... en ik wil die pointer d'r via een constante functie uithalen (die functie mag aan het object zelf niks veranderen) dan kan dat dus niet, als ik ergens anders iets aan het object waarnaar die pointer wijst wil veranderen?

Only dead fish go with the flow


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

het is niet meer dan logisch :)

je mag niets veranderen aan het object, en automatisch ook niets aan de objecten waar dat object naartoe wijst. Anders zou het niet const zijn

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Toiletman
  • Registratie: Februari 2000
  • Laatst online: 13-09 14:36
mmmz, misschien is het dat idd wel :-)

wat echter niet logisch is is die operator+ error...

Only dead fish go with the flow


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

das idd waar, maar daar zal ik me niet te druk om maken zolang je code nog verkeerd is. Het is waarschijnlijk gewoon een compiler bug (of iets wat we totaal over het hoofd zien), maar als je code goed is en hij komt ook niet meer, who cares :)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Orphix
  • Registratie: Februari 2000
  • Niet online
[ot, maar het is al laat]
leuk icon OiSyN, ik herkende je al niet meer ;)
[/ot]

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 00:42

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op maandag 21 januari 2002 02:42 schreef Orphix het volgende:
[ot, maar het is al laat]
leuk icon OiSyN, ik herkende je al niet meer ;)
[/ot]
[nog offtopicer]
:D
hetzelfde geld voor jouw random icons, je hebt er een paar andere bij gezet (een tijdje terug al trouwens) :)

Maar ken je dat filmpje? Hij is echt ontzettend stoer: http://www.toiletduk.net/multimedia/flash/secretwebnew.swf
[/nog offtopicer]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op maandag 21 januari 2002 03:56 schreef OiSyN het volgende:
Maar ken je dat filmpje? Hij is echt ontzettend stoer: http://www.toiletduk.net/multimedia/flash/secretwebnew.swf
:D nee ik kende 'm nog niet
nu begrijp ik je ..
nou ik ben toch liever een shover robot .. 'I shove blind people' :P ;)
Pagina: 1