Toon posts:

[VC++] Waarom herkent ie dit niet? (CString)

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik wil gebruik maken van CString, op google heb ik gevonden dat het gewoon zo gaat

{
CString string;

string. <en dan allemaal opties waaruit je kan kiezen>

blablabla
}

Die opties komen gewoon te voorschijn en ik kies er een. Bij het compilen zegt ie:

"error C2065: 'CString' : undeclared identifier"

Ik snap er niks van, ik heb vaker dit soort fouten.

Verwijderd

Je moet 'm wel includen natuurlijk...ff in msdn loeren in welke .h ie zit en die bij je includes zetten.

Verwijderd

include <string.h> ?

Verwijderd

Topicstarter
heb ik gedaan

#include <afx.h> staat erbij maar als ik die include dan is het :

"WINDOWS.H already included. MFC apps must not #include <windows.h>"

Ik ben begonnen met een Win32 app en dan een simple app.

Hier de volledige code, hij is nog leeg want ik ben er net mee begonnen

====================================================
#include "stdafx.h"
#include <windows.h>
#include <afx.h>
#include <string.h>

void main()
{
CString StrList;
}

int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
return 0;
}
==========================================================

ook zonder die windows.h zeurt ie erover

  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

#include <string>

zonder h geprobeerd?

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17:11
Check je stdafx.h. Daar wordt windows.h denk ik al geincluded.

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.


Verwijderd

Topicstarter
Oke heeft iemand dan een stukje code voor me hoe het wel moet.

Als ik em in de stdafx weghaal dan krijg ik weer hele andere errors.

Verwijderd

of gebruik :
code:
1
2
3
4
5
6
#include <afx.h>
#include "stdafx.h"
#ifndef windows_h
#define windows_h
#endif
#include <string.h>

edit:
verkeerde volgorde |:(

Verwijderd

als je stdafx weghaalt moet je ook even precompiled headers uitschakelen (duurt compileren wel iets langer) anders gaat ie idd zeuren.

  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

Stel je project in op multithreading, dan werkt et.

dus dan alleen:

#include <afx.h>
#include <string>

Verwijderd

Op maandag 24 juni 2002 23:40 schreef LAN het volgende:
Stel je project in op multithreading, dan werkt et.
Wat heeft multithreading nou weer met z'n CString includes te maken :?

Verwijderd

Topicstarter
*zucht* ik mis Delphi.....

Ik ga nog wat proberen dan ga ik een beroep doen op een van jullie om effe een project voor me aan te maken. :+

  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

Op maandag 24 juni 2002 23:51 schreef Yarvieh het volgende:

[..]

Wat heeft multithreading nou weer met z'n CString includes te maken :?
CString hoort bij MFC, en dat is multithreaded.
Standaard staat een win32 project ingesteld op singlethreaded, vandaar.

  • LAN
  • Registratie: Oktober 2000
  • Niet online

LAN

Op maandag 24 juni 2002 23:52 schreef Skynet2097 het volgende:
*zucht* ik mis Delphi.....

Ik ga nog wat proberen dan ga ik een beroep doen op een van jullie om effe een project voor me aan te maken. :+
alt+f7 | tab c/c++ | category: code generation | use run time library: debug multithreaded

Verwijderd

Topicstarter
Oh yeah baby, eindelijk het werkt. Ik heb in stdafx.h #include windows.h weggehaald en toen werkte het. Best wel een gedoe in VC++, ik ben nog een n00b in VC++ maar dat hadden jullie wel door.

Thx dudes *D

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 03-09 13:30

.oisyn

Moderator Devschuur®

Demotivational Speaker

Op maandag 24 juni 2002 23:53 schreef LAN het volgende:

[..]

CString hoort bij MFC, en dat is multithreaded.
Standaard staat een win32 project ingesteld op singlethreaded, vandaar.
dan begint ie te zeuren over verkeerde libs waarmee je linkt, je krijgt echter geen compiler errors. maw, hij include nog steeds niet de goede file

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.


  • The End
  • Registratie: Maart 2000
  • Laatst online: 14:14

The End

!Beginning

Mensen, wat een lekkere reacties allemaal.
-CString heeft niks met single/multithreading te maken.
-stdafx.h weghalen maakt je project zeker niet compileerbaarder.
-#ifndef windows_h al helemaal erg.
-MFC is niet alleen maar multithreaded.

Deze drie dingen weghalen (niet uit je stdafx.h !!):
#include <windows.h>
#include <afx.h>
#include <string.h>
Dan zou het moeten werken. (Wat voor project had je gekozen?)

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17:11
Op dinsdag 25 juni 2002 09:08 schreef The End het volgende:
Mensen, wat een lekkere reacties allemaal.
-stdafx.h weghalen maakt je project zeker niet compileerbaarder.
Er is ook nooit beweert dat ie die weg moest halen. Alleen dat 'ie em moest checken omdat daar windows.h ook geincluded wordt. En als ie em weg wil halen dat ie ook precopiled headers moet uitzetten.

Overigens is het gebruik van stdafx.h niet echt geweldig omdat je compiler alles moet hercompilen als er iets in dit bestand verandert. Naar mijn idee is het een idiote constructie die MS bedacht heeft.

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.


  • The End
  • Registratie: Maart 2000
  • Laatst online: 14:14

The End

!Beginning

Op dinsdag 25 juni 2002 09:37 schreef farlane het volgende:

[..]

[knip]

Overigens is het gebruik van stdafx.h niet echt geweldig omdat je compiler alles moet hercompilen als er iets in dit bestand verandert. Naar mijn idee is het een idiote constructie die MS bedacht heeft.
Hoevaak moet je dan wat veranderen in stdafx.h? Ik vind het juist erg handig. (en scheelt me redelijk wat tijd)

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 17:11
Op dinsdag 25 juni 2002 11:01 schreef The End het volgende:

Hoevaak moet je dan wat veranderen in stdafx.h?
Niet vaak.

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.


Verwijderd

Topicstarter
wow, mijn topic leeft nog. :)

maar eh alles werkt nu, mara ik loop weer tegen een muur aan. Hoe geeft een functie aan string als return???

char doetWat() werkt nie want de string is langer dan i char. Moet ik dan werken met een pointerstring of zo of is er een ander mooier manier :D

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 04-09 22:38
Op dinsdag 25 juni 2002 17:12 schreef Skynet2097 het volgende:
ik loop weer tegen een muur aan. Hoe geeft een functie aan string als return???

char doetWat() werkt nie want de string is langer dan i char. Moet ik dan werken met een pointerstring of zo of is er een ander mooier manier :D
Ik gebruik tegenwoordig std::string (werkt nl overal, niet alleen in VC), maar het zou me ernstig vebazen als CString in dit verband anders werkt.
De standaard methode om een T te returnen vanuit een functie f, is een declaratie
code:
1
T f();

en in de functie f een
code:
1
return een_T_object;

te doen. T kan b.v. int of of char of MyType of std::string zijn.
Zo zou je ook
code:
1
return CString("hello, world\n");

kunnen doen.
wat wordt zo'n bericht lang met [ code ] tags

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


Verwijderd

CString EenFunctie()
{
return CString("een string");
}

  • Daspeed
  • Registratie: Maart 2001
  • Laatst online: 17:03
Op maandag 24 juni 2002 23:20 schreef Skynet2097 het volgende:
heb ik gedaan

#include <afx.h> staat erbij maar als ik die include dan is het :

"WINDOWS.H already included. MFC apps must not #include <windows.h>"
Je kunt d8 ik ook <afxwin.h> includen, dan heb je daar geen last van.
Pagina: 1