Problem mit Header Dateien
-
Ich habe folgendes unter VC++2005:
/* Filename: message_box.hpp Date: 09.06.2007 Description: creation of message boxes */ #ifndef MESSAGE_BOX_HPP #define MESSAGE_BOX_HPP #include <windows.h> namespace Gui { void mb(const TCHAR* message); void mb(const TCHAR* caption, const TCHAR* message); void mb_err(const TCHAR* message); void mb(HWND h, const TCHAR* message); void mb(HWND h, const TCHAR* caption, const TCHAR* message); void mb_err(HWND h, const TCHAR* message); } #endif// provides implementation for 'message_box.hpp #include "message_box.hpp" using namespace Gui; void mb(const TCHAR* message) { MessageBox(0, message, TEXT("Message"), MB_OK); } void mb(const TCHAR* caption, const TCHAR* message) { MessageBox(0, message, caption, MB_OK); } void mb_err(const TCHAR* message) { MessageBox(0, message, TEXT("Error"), MB_OK | MB_ICONERROR); } void mb(HWND h, const TCHAR* message) { MessageBox(h, message, TEXT("Message"), MB_OK); } void mb(HWND h, const TCHAR* caption, const TCHAR* message) { MessageBox(h, message, caption, MB_OK); } void mb_err(HWND h, const TCHAR* message) { MessageBox(h, message, TEXT("Error"), MB_OK | MB_ICONERROR); }/* test - message_box */ #include "message_box.hpp" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd) { using namespace Gui; mb(TEXT("hello world")); mb(TEXT("information"), TEXT("unique")); mb_err(TEXT("wrong message")); return 0; }Endeffekt:
Error 1 error LNK2019: unresolved external symbol "void __cdecl Gui::mb_err(wchar_t const *)" (?mb_err@Gui@@YAXPB_W@Z) referenced in function _WinMain@16 unit_test.obj
Error 2 error LNK2019: unresolved external symbol "void __cdecl Gui::mb(wchar_t const *,wchar_t const *)" (?mb@Gui@@YAXPB_W0@Z) referenced in function _WinMain@16 unit_test.obj
Error 3 error LNK2019: unresolved external symbol "void __cdecl Gui::mb(wchar_t const *)" (?mb@Gui@@YAXPB_W@Z) referenced in function _WinMain@16 unit_test.obj
Error 4 fatal error LNK1120: 3 unresolved externals C:\Documents and Settings\Zdravko\My Documents\Visual Studio 2005\Projects\gui_fundaments\Debug\gui_fundaments.exe 1Warum?
-
Ist die CPP Datei wirklich in das Projekt eingefügt worden?
Sind alle CPP Dateien garantiert mit den selben Compiler Optionen kompiliert?
-
Martin Richter schrieb:
Ist die CPP Datei wirklich in das Projekt eingefügt worden?
Sind alle CPP Dateien garantiert mit den selben Compiler Optionen kompiliert?Ja!
-
Und? Was machen wir jetzt?

-
Deine Funktionen der cpp Datei liegen nicht im Namespace Gui!
Muss sein:#include "message_box.hpp" namespace Gui { void mb(const TCHAR* message) { MessageBox(0, message, TEXT("Message"), MB_OK); } [snip] }
-
Vielen Dank!
