BOOL AFXAPI AfxWinInit (HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
พารามิเตอร์
hInstance
หมายเลขอ้างอิงของโมดูลกำลังเรียกใช้อยู่?
hPrevInstance
หมายเลขอ้างอิงการอินสแตนซ์ก่อนหน้าของ application.nbsp สำหรับการประยุกต์การใช้ Win32 พารามิเตอร์นี้ว่างเสมอ(&N)?
lpCmdLine
จุดสิ้นสุดด้วย null สตระบุบรรทัดคำสั่งสำหรับโปรแกรมประยุกต์?
nCmdShow
ระบุว่า จะแสดงหน้าต่างหลักของโปรแกรมประยุกต์แบบ GUI?
หมายเหตุ
ฟังก์ชันนี้จะเรียกว่า โดยฟังก์ชันที่ให้มา MFC WinMainเป็นส่วนหนึ่งของการเตรียมใช้งานCWinAppกับ GUI ใช้แอพพลิเคชัน MFC การเตรียมใช้งาน สำหรับแอพพลิเคชันที่คอนโซล ซึ่งใช้ฟังก์ชันที่ให้มา MFC WinMainคุณต้องเรียกใช้AfxWinInitโดยตรงในการเตรียมใช้งาน MFC?
ถ้าคุณเรียกAfxWinInitคุณควรประกาศอินสแตนซ์ของคลาสCWinApp คุณอาจเลือกไม่ให้สืบทอดมาของคลาสจากCWinAppและใช้แทน อินสแตนซ์ของCWinAppโดยตรงสำหรับโปรแกรมประยุกต์ที่คอนโซล เทคนิคนี้จะเหมาะสมถ้าคุณตัดสินใจที่จะปล่อยให้หน้าที่การใช้งานทั้งหมดสำหรับโปรแกรมประยุกต์ของคุณในการใช้งานของหลัก?
ฉีกตัวอย่างแสดงวิธีการสร้างโปรแกรมประยุกต์แบบคอนโซลที่ใช้ MFC?
ตัวอย่าง
/ / แฟ้มนี้ต้องถูกคอมไพล์ ด้วยตัวเลือก /GX และ /MT:
/ / cl /GX /MT thisfile.cpp
#รวม lt;afx.h >
#รวม <afxdb.h>
#รวม <iostream.h>
int main()
{
/ / พยายามเตรียมใช้งาน MFC
if (!AfxWinInit(::GetModuleHandle(NULL), NULL,:: GetCommandLine(), 0))
{
cerr << "MFC เหลวในการเตรียมใช้งาน << endl
ส่งกลับค่า 1
}
/ / พยายามเชื่อมต่อกับฐานข้อมูล ODBC ที่ไม่มีอยู่
/ / (นี้จะไม่ทำทั้งหมด โดยไม่มีการเตรียมใช้งาน MFC)
CDatabase db
ลอง
{
dbเปิด ("Databsae นี้ไม่มีอยู่");
/ / ไม่ควรสั่งได้ที่นี่
cout << "Successful << endl
cout << "ปิด... ";
dbClose()
cout << "Closed" << endl
}
จับ (CDBException * pEx)
{
/ / เรามีข้อยกเว้น พิมพ์ข้อความแสดงข้อผิดพลาด
/ / (นี้จะไม่ทำ โดยไม่มีการเตรียมใช้งาน MFC)
อักขระ sz [1024];
cout << "ข้อผิดพลาด: ";
ถ้า (pEx - > GetErrorMessage (sz, 1024))
cout << sz
อื่น
cout << "ข้อความแสดงข้อผิดพลาดไม่มี"
cout << endl
pEx - > Delete()
ส่งกลับค่า 1
}
ส่งกลับค่า 0
}
ดูเพิ่มเติมnbspCWinApp, CWinApp: The Application คลา, หลัก WinMain(&N)