Nexus86Medlem sedan okt. 20022 683 inlägg
Jag får ett konstigt kompileringsfel i C++. Jag har #include <string.h> men ändå när jag försöker använda
string lcase(string &str);
högst upp i filen till en funktion jag har gjort så får jag dessa fel:
C++ kompilatorn skrev:
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(23) : error C2146: syntax error : missing ';' before identifier 'lcase'
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(23) : error C2501: 'string' : missing storage-class or type specifiers
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(23) : fatal error C1004: unexpected end of file found
Vad är fel?
EDIT // Så vissa inte tror att jag är dum kan jag tillägga att jag har skrivit #include <string.h> över denna rad. :)
Marcus EMedlem sedan maj 20021 294 inlägg
Du vill använda STL-klassen string? Prova
#include <string>
using namespace std; [i]eller[/i]
using std::string; [i]eller[/i]
std::string istället för string
Nexus86Medlem sedan okt. 20022 683 inlägg
Nexus86Medlem sedan okt. 20022 683 inlägg
Resultat:
Vid "using namespace std;":
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(5) : error C2871: 'std' : does not exist or is not a namespace
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(24) : error C2146: syntax error : missing ';' before identifier 'lcase'
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(24) : error C2501: 'string' : missing storage-class or type specifiers
Vid "using string;":
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(5) : error C2873: 'string' : symbol cannot be used in a using-declaration
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(24) : error C2146: syntax error : missing ';' before identifier 'lcase'
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(24) : error C2501: 'string' : missing storage-class or type specifiers
Vid "std::string":
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(23) : error C2653: 'std' : is not a class or namespace name
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(23) : error C2146: syntax error : missing ';' before identifier 'lcase'
C:\Program\Microsoft Visual Studio\MyProjects\Apache\main.cpp(23) : error C2501: 'string' : missing storage-class or type specifiers
Något mera? Alla mina includes är:
#include <stdlib.h>
#include <windows.h>
#include <tlhelp32.h>
#include <string.h>
Saknas någon?
PhorpherMedlem sedan feb. 20002 059 inlägg
Byt #include <string.h> till: #include <string>
Nexus86Medlem sedan okt. 20022 683 inlägg
Då övergick det ifrån 4 errors och 0 warnings till 13 errors och 2 warnings.. :e
Nexus86Medlem sedan okt. 20022 683 inlägg
Sen nu nere i 3 errors och 0 warnings.. hade ett annat fel.. :)
Men det är fortfarande samma fel. :l
PhorpherMedlem sedan feb. 20002 059 inlägg
Hm.. Du får gärna ge lite mer kod...
En känsla... Testa att lägga till #include <iostream>
Nexus86Medlem sedan okt. 20022 683 inlägg
Phorpher skrev:
Hm.. Du får gärna ge lite mer kod...
En känsla... Testa att lägga till #include <iostream>
Har provat med det men det hjälpte inte. Kan lägga upp hela cpp-filen. Det ska bli ett litet men bra program till mej själv som gör så att jag kan styra Apache från SysTrayen istället för att behöva ha det ligga nere i TaskBaren hela tiden.
PhorpherMedlem sedan feb. 20002 059 inlägg
Nu har du #include <iostream.h>
Byt till #include <iostream>
iostream.h innehåller äldre libs och kan därför ge såna fel..
Nexus86Medlem sedan okt. 20022 683 inlägg
Har alltid trott att det är samma. :)
Men det fungerar fortfarande inte. :l Blir tokig snart.
PellefantMedlem sedan maj 20022 614 inlägg
Hm..jag kom och tänka på något helt annat när jag såg rubriken, och tryckte mig in hit direkt, vilken besvikelse... :)
Nexus86Medlem sedan okt. 20022 683 inlägg
Okej Pellefant. :) Vad var det du hoppades hitta då?
PhorpherMedlem sedan feb. 20002 059 inlägg
Pellefant skrev:
Hm..jag kom och tänka på något helt annat när jag såg rubriken, och tryckte mig in hit direkt, vilken besvikelse... :)
Jag föredrar också den sortens string! :birp
Nexus86
Vad får du för felmeddelanden då?
Nexus86Medlem sedan okt. 20022 683 inlägg
Phorpher skrev:
Pellefant skrev:
Hm..jag kom och tänka på något helt annat när jag såg rubriken, och tryckte mig in hit direkt, vilken besvikelse... :)
Jag föredrar också den sortens string! :birp
Nexus86
Vad får du för felmeddelanden då?
Samma fortfarande. :l
Tänkte inte riktigt på stringgrejen. Tänkte att han måste ha sett att det stog i C++.. :e
PhorpherMedlem sedan feb. 20002 059 inlägg
Men nu när jag tittar på din kod igen så ser jag inte att du använder varken using namespace std eller std::string vid deklarationer.
Lägg using namespace std; Alldeles under alla dina #defines.
Nexus86Medlem sedan okt. 20022 683 inlägg
Men jag provade med det och då fungerade det inte men nu gör det det. Tack! :)
PhorpherMedlem sedan feb. 20002 059 inlägg
Nexus86 skrev:
Men jag provade med det och då fungerade det inte men nu gör det det. Tack! :)
Det beror på att du hade inkluderat "iostream.h" istället för "iostream".
Nexus86Medlem sedan okt. 20022 683 inlägg
Men en sak till, hur gör jag för att göra om en text från string till LPCTSTR? Det går inte med (LPCTSTR)Text.
PhorpherMedlem sedan feb. 20002 059 inlägg
En LPCTSTR är en C-sträng (char *)
En string har en bunt metoder. Metoden c_str() returnerar en pekare till en C-sträng.
Dvs. Om funktionen foo har en LPCTSTR som inargument så borde det här fungera:
...
string bar;
foo(bar.c_str());
...