בעייה בקימפול תוכנית

The Albatross

New member
בעייה בקימפול תוכנית

שלום לכולם. ניסיתי לקמפל בעזרת מהדר הVS.NET שברשותי את התוכנית הראשונה בספרו של ג'ף פרוסייס, Programming windows with MFC. התוכנית היא כדלקמן:
Hello.h class CMyApp : public CWinApp { public: virtual BOOL InitInstance (); }; class CMainWindow : public CFrameWnd { public: CMainWindow (); protected: afx_msg void OnPaint (); DECLARE_MESSAGE_MAP () }; Hello.cpp #include <afxwin.h> #include "Hello.h" CMyApp myApp; ///////////////////////////////////////////////////////////////////////// // CMyApp member functions BOOL CMyApp::InitInstance () { m_pMainWnd = new CMainWindow; m_pMainWnd->ShowWindow (m_nCmdShow); m_pMainWnd->UpdateWindow (); return TRUE; } ///////////////////////////////////////////////////////////////////////// // CMainWindow message map and member functions BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd) ON_WM_PAINT () END_MESSAGE_MAP () CMainWindow::CMainWindow () { Create (NULL, _T ("The Hello Application")); } void CMainWindow::OnPaint () { CPaintDC dc (this); CRect rect; GetClientRect (&rect); dc.DrawText (_T ("Hello, MFC"), -1, &rect, DT_SINGLELINE ¦ DT_CENTER ¦ DT_VCENTER); }​
אבל המהדר מתריע על השגיאות הבאות:
error C3209: ' DT_CENTER' : Unicode identifiers are not yet supported error C3209: ' DT_VCENTER' : Unicode identifiers are not yet supported error C2146: syntax error : missing ')' before identifier ' DT_CENTER' error C2059: syntax error : ')'​
וכולם בשורה הזאת:
dc.DrawText ("Hello, MFC", -1, &rect, DT_SINGLELINE ¦ DT_CENTER ¦ DT_VCENTER);​
מה הבעייה של הקומפיילר? בתודה מראש, The Albatross.
 

gmorphus

New member
MFC ו VS.NET../images/Emo35.gif

אני לא עובד עם .net אבל הוא בכלל תומך בMFC? בכל מקרה, בקבועים שהוא לא מכיר האם הכוונה הייתה לBOOL ול DECLARE_MESSAGE_MAP? כי אם כן, אז איך הMFC אמור בכלל לעבוד?
 

vinney

Well-known member
לא לא

הלא ידועים זה אלה: error C3209: ' DT_CENTER' : Unicode identifiers are not yet supported error C3209: ' DT_VCENTER' : Unicode identifiers are not yet supported
 

gmorphus

New member
דווקא נראה כאילו הוא מכיר אותם

הרי הוא יודע למה הם שייכים. בכל מקרה, כשיש לך קבועים שהוא לא מכיר אז הוא מודיע undeclared identifier. בהודעה הזאת אף פעם לא נתקלתי, ולא נראה לי שזאת הבעיה.
 

The Albatross

New member
אוקיי, זה נעשה אפילו יותר גרוע

עכשיו הוא מהדר בהצלחה את התוכנית, אבל בזמן הקישור (Linking), הוא זורק לי את השגיאות האלה:
nafxcwd.lib(thrdcore.obj) : error LNK2019: unresolved external symbol __endthreadex referenced in function "void __stdcall AfxEndThread(unsigned int,int)" (?AfxEndThread@@YGXIH@Z) nafxcwd.lib(thrdcore.obj) : error LNK2019: unresolved external symbol __beginthreadex referenced in function "public: int __thiscall CWinThread::CreateThread(unsigned long,unsigned int,struct _SECURITY_ATTRIBUTES *)" (?CreateThread@CWinThread@@QAEHKIPAU_SECURITY_ATTRIBUTES@@@Z) Debug/bn.exe : fatal error LNK1120: 2 unresolved externals​
 

frangelico

New member
נראה מסוג השגיאות

שמופיעות שיוצרים פרוייקט מסוג מסויים ב VS אבל כותבים פרוייקט מסוג אחר. כמו CONSOLE או DLL במקום win 32. תנסה לפתוח פרוייקט חדש ותבדוק ב APPLICATION SETTING (ב WIZARD) שאתה על Windows Application ולהעתיק אליו את הקבצים.
 

The Albatross

New member
נצל"ש: WTL

הייתי רוצה להבין מה ההבדלים בין MFC לWTL. בתור אחד שרק נכנס לעסק של תכנות לוינדוס, מה אני צריך ללמוד?
 
למעלה