In einem meiner Projekte kompiliert dieser Code ohne Problem.Einfacher Code mit C++ - Fehlern C4430 und C2143
Aber in einem anderen Projekt mit den gleichen Dateien, kompiliert es nicht. Ich verwende VS2012 und die C/C++ - Eigenschaften sind zwischen den beiden Projekten identisch. Ich habe hier gesucht, konnte aber nichts finden. Jede Hilfe wird geschätzt!
Headerdatei:
#include <vector>
extern void split(const wstring &s, WCHAR c, vector<wstring>& v);
C++ Datei:
void split(const wstring& s, WCHAR c, vector<wstring>& v)
{
string::size_type i = 0;
string::size_type j = s.find(c);
while (j != string::npos) {
v.push_back(s.substr(i, j-i));
i = ++j;
j = s.find(c, j);
if (j == string::npos)
v.push_back(s.substr(i, s.length()));
}
}
Dies ist, wie ich die Funktion aufrufen:
wstring csToken;
vector<wstring> vProductVersion;
TCHAR *sProductVersion = tcalloc(64);
StringCchCopy(sProductVersion,64,L"3.3.422");
// Put the string into a vector array.
csToken.assign(sProductVersion);
split(csToken, '.', vProductVersion);
Hier sind die Fehler der Compiler generiert:
1>c:\\projects\\functions.h(5): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\\projects\\functions.h(5): error C2143: syntax error : missing ',' before '&'
Offensichtlich ist _something_ anders, und es ist zweifelhaft, wir können sehen, was das von hier ist! –