Gast
2011-04-02, 15:21:48
Nachdem ich mir die Grundkenntnisse von C++ einigermaßen angeeignet habe, wollte ich nun etwas Code von erfahrenen Leuten studieren. Dabei bin ich auf eine "Konstruktion" gestoßen die ich mir so nicht erklären kann.
Es handel sich um diese Zeile - " extern "C" { " - dieses Codes:
#ifdef __cplusplus
extern "C" {
#endif
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char *argv[])
#endif
{
// Create application object
TutorialApplication app;
try {
app.go();
} catch( Ogre::Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr << "An exception has occured: " <<
e.getFullDescription().c_str() << std::endl;
#endif
}
return 0;
}
#ifdef __cplusplus
}
#endif
Was ist das? Ich weiß zwar was extern macht aber ich bin absolut ratlos was "C" hier zu suchen hat und was es denn bringt...
Bitte um Erklärung!
Es handel sich um diese Zeile - " extern "C" { " - dieses Codes:
#ifdef __cplusplus
extern "C" {
#endif
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
#else
int main(int argc, char *argv[])
#endif
{
// Create application object
TutorialApplication app;
try {
app.go();
} catch( Ogre::Exception& e ) {
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
#else
std::cerr << "An exception has occured: " <<
e.getFullDescription().c_str() << std::endl;
#endif
}
return 0;
}
#ifdef __cplusplus
}
#endif
Was ist das? Ich weiß zwar was extern macht aber ich bin absolut ratlos was "C" hier zu suchen hat und was es denn bringt...
Bitte um Erklärung!