PDA

View Full Version : [VC++ 2005] Primo scoglio con la programmazione


marco.inblu
18-12-2007, 14:48
Salve ragazzi,
sono ancora io ... quello del primo scoglio...
Ho da poco scritto riguardo ad un problemino on C++ ed adesso sono alle prese con VC++ (2005).

Il programmino è semplicissimo ma al solito le mie conoscienze mi bloccano alla prima difficoltà....

Vi posto il programma che non fa altro che far comparire una finestra vuota.

Il programma è scritto in un solo file (Exercise.cpp) per semplificare il tutto ed è il seguente:


#include <afxwin.h>

class CExerciseApp : public CWinApp
{
public:
virtual BOOL InitInstance();
};

class CMainFrame : public CFrameWnd
{
public:
CMainFrame();
};

CMainFrame::CMainFrame()
{
Create(NULL, "MFC Fundamentals");
}

BOOL CExerciseApp::InitInstance()
{
m_pMainWnd = new CMainFrame;
m_pMainWnd->ShowWindow(SW_NORMAL);

return TRUE;
}

CExerciseApp theApp;


L'errore che mi viene segnalato è:

------ Rebuild All started: Project: Project_Start, Configuration: Debug Win32 ------
Deleting intermediate and output files for project 'Project_Start', configuration 'Debug|Win32'
Compiling...
Exercise.cpp
WINVER not defined. Defaulting to 0x0502 (Windows Server 2003)
d:\vs2005\project_start\project_start\exercise.cpp(17) : error C2664: 'CFrameWnd::Create' : cannot convert parameter 2 from 'const char [17]' to 'LPCTSTR'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Build log was saved at "file://d:\VS2005\Project_Start\Project_Start\Debug\BuildLog.htm"
Project_Start - 1 error(s), 0 warning(s)
========== Rebuild All: 0 succeeded, 1 failed, 0 skipped ==========


Nelle proprietà del progetto ho impostato l'uso dell' MFC.

Che mi sapete dire?

Grazie ancora

cionci
18-12-2007, 15:35
Create(NULL, "MFC Fundamentals");

Se non ricordo male:

Create(NULL, _T("MFC Fundamentals"));

marco.inblu
18-12-2007, 15:59
Ancora una volta mi togliete dai guai...

Grazie infinite.

... e poi mi chiedo ... ma perchè tutte le volte cambiano le carte in tavola nel passaggio da VC++ 6 a VC++ 2005???

Grazie ancora.

71104
18-12-2007, 18:48
... e poi mi chiedo ... ma perchè tutte le volte cambiano le carte in tavola nel passaggio da VC++ 6 a VC++ 2005??? ennò, in teoria avresti dovuto fare così anche nella versione 6. ciò che facevi era un uso inconsistente del supporto per Unicode; come risultato il codice compilava correttamente nella versione 6 (dove la macro UNICODE non è definita di default), ma non nella versione 2005 (dove la macro UNICODE è definita di default). se ancora volevi compilare lo stesso identico codice anche nel 2005 dovevi semplicemente sdefinire (:D) UNICODE, cosa che si fa da non ricordo dove nelle impostazioni del progetto; però sappi che era codice semanticamente errato.