MFC Library problem

6 отговора 147 прегледа
#1

MFC Library problem

Taj kato mi popadna knigata na Jeff Prosise Programming Windows with MFC
reshih da probvam da pusna parvijat primer kojto e daden v knigata. Stava
duma za programa ot tipa "Hallo", otvarja se edin prozorec na kojto pishe
"Hallo MFC". Za da izpolzvam MFC bibliotekata slagam #include "afxwin.h".

Eto i koda na tazi uprostena programa:

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);
}

Sled kato se opitah da kompiliram programata s Visual C++ 6.0 mi dade slednata
informacij za greshka na Linkera.

Compiling...
Hello.cpp
Linking...
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex
nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex
libcd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/Hello.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

Hello.exe - 4 error(s), 0 warning(s)

Javno ne namira neshto v tova copie na MFC bibliotekata. Kak moga da si napravja
variant na Static Link Library v zavisimost ot nujdite mi.

Отговор
в отговор на boby #2

Re: MFC Library problem

Abe 4owek ti da nesi pisal wsi4ko towa na ryka? Ne izpolzwash li raznite mu tam WIZARD - i. Sigurno w proekta ti ne sa wklu4eni neobhodimite *.lib failowe, ako wopshte si naprawil prject.

Ako neznaesh kak da si go naprawish ......... :
1. Menu File->New
2. Izbirash Projects - Win32 Application // ne zabrawia da napishesh ime na Projecta
3. Posle izbirash "Empty Project" ili neshto takowa beshe, i karash nanatyka
4. nakraia mojesh da natisnesh "Finish".
5. Posle pribawi tezi failowe deto si gi napisal kym tozi Project (menu Project->Add to project->Files)
6. Posle menu Project->Settings ot poiawiliat se dialog izbirash General i ot Microsoft Foundation Classes izbirash "use MFC in a shared DLL " ili drugoto za "static" neshtata.
7. Mai e towa....

Ako ne stane niakyde w na4aloto na knigata go pishe s podrobnosti kak to4no stawa, ama mislia 4e ne sym zabrawil nishto


Отговор
в отговор на boby #3

Re: MFC Library problem

Направи следното:
Project-Settings, таб General, category: Code generation, use run-time library:
Debug Multithread

Отговор
в отговор на boby #4

Re: MFC Library problem

Kato ste mazohisti pishete 200 reda za edin "Hello World"... za mene kombinaciqta Delphi+VCL nqma ravna

Отговор
в отговор на NiL^ #5

Re: MFC Library problem

Spoko, nikoi ne pishe 200 reda za edin window s nadpis 'Hello World!'. Problemut, diskutiran tuk e imenno zaradi tova, che... kodut e pisan na ruka. Ako beshe generiran ot wizard-a, nqmashe da ima problem. A az mislq, che kakvoto i da se govori, VC++ e nai-profesionalno. Konkretno za Delphi - mnogo ot dascalite po informatika, znaesti Pascal, za po-lesno se prehvurlqt na nego. Samo che e dalec ot silata i guvkavostta na C++.

Отговор
в отговор на Nikwar #6

Re: MFC Library problem

Kade se namira tova, v Project settings general ima samo pole za izbor na MFC i vhodnata i izhodna direktorija

Отговор
в отговор на NiL^ #7

Re: MFC Library problem

nishto ne mi prechi za edin hello world da si napisha
console application i w projecta da imam samo
#include <stdio.h>
int main()
{
printf("hello world");
return 0;
}
bez da znam za VCL, MFC i drugi podobni
za mene cosole applications niamat ravni :)
wsichko drugo e boza :)
BTW na Delphi ima li target - console application?

Отговор