AfxWinInit
Bu işlev mfc tarafından sağlanan göre adlandırılır WinMain bir parçası olarak işlev CWinApp mfc başlatılamadı bir GUI tabanlı uygulama başlatma.
BOOL AFXAPI AfxWinInit(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow
);
Parametreler
hInstance
Şu anda çalışan modül işleci.hPrevInstance
Uygulamasının önceki bir örneği için tanıtıcı. Win 32 tabanlı bir uygulama için bu parametreyi her zaman olduğu null.lpCmdLine
Uygulama komut satırı belirleyen bir boşlukla sonlandırılmış dize işaret.nCmdShow
Nasıl bir GUI uygulamasının ana penceresinde gösterilen belirtir.
Notlar
Bir konsol uygulaması için hangi kullanmayan mfc sağlanan WinMain işlevini çağırmanız gerekir AfxWinInit doğrudan mfc başlatılamadı.
Çağırırsanız, AfxWinInit , kendiniz bir örneğini bildirmeniz gerekir bir CWinApp sınıfı. Bir konsol uygulaması için kendi sınıfından türeyen değil seçebilirsiniz CWinApp ve bunun yerine bir örneğini CWinApp doğrudan. Bu teknik uygulamanızda tüm işlevselliği uygulamanız için bırakmak karar verirseniz, uygun ana.
Not
Derleme için etkinleştirme içeriği oluşturduğunda mfc kullanıcı modülü tarafından sağlanan bir bildirim kaynağı kullanır.Etkinleştirme içeriği oluşturulur AfxWinInit.Daha fazla bilgi için bkz: mfc modülü durumunda etkinleştirme bağlamı için destek.
Örnek
#include <afx.h>
#include <afxdb.h>
int _tmain(int /*argc*/, TCHAR* /*argv[]*/, TCHAR* /*envp[]*/)
{
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
else
{
// try to connect to an ODBC database that doesn't exist
// (this wouldn't work at all without initializing MFC)
CDatabase db;
try
{
db.Open(_T("This Databsae Doesn't Exist"));
// we shouldn't realistically get here
_tprintf_s(_T("Successful!\n")
_T("Closing ...\n"));
db.Close();
_tprintf_s(_T("Closed!"));
}
catch (CDBException* pEx)
{
// we got an exception! print an error message
// (this wouldn't work without initializing MFC)
TCHAR sz[1024];
_tprintf_s(_T("Error: "));
if (pEx->GetErrorMessage(sz, 1024))
_tprintf_s(sz);
else
_tprintf_s(_T("No error message was available"));
_tprintf_s(_T("\n"));
pEx->Delete();
nRetCode = 1;
}
}
return nRetCode;
}
Gereksinimler
Başlık: afxwin.h