मैं अपने सी ++ प्रोग्राम में MFC उपयोग कर रहा हूँ (विजुअल स्टूडियो 2008 का उपयोग) चलाता है। मुझे अपने कार्यक्रम की शुरुआत में AfxGetInstanceHandle() को कॉल करना होगा।AfxGetInstanceHandle() एक अभिकथन विफलता
AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
{ ASSERT(afxCurrentInstanceHandle != NULL);
return afxCurrentInstanceHandle; }
ASSERT बयान में विफल रहता है:
यह समारोह एक को तोड़ने बिंदु से चलाता है। मैं सोच रहा था कि अगर आप इसे एक्सेस करने का प्रयास करने से पहले afxCurrentInstanceHandle
आरंभ करने के लिए कुछ करना चाहते थे।
पुनश्च: मैं एक साझा dll में MFC उपयोग कर रहा हूँ।
संपादित
मेरे कोड है कि तरह है:
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
AfxGetInstanceHandle();
return 0;
}
मैं आदेश में एक CComModule
प्रारंभ और फिर इसका इस्तेमाल कॉम वस्तु हेरफेर करने के लिए करने के लिए InstanceHandle
उपयोग करना चाहते हैं।
तो वहाँ सभी CWinApp वस्तु बिना AfxGetInstanceHandle() का उपयोग करने के लिए कोई तरीका है? – Arthur
मुझे लगता है कि मैं कुछ गलत कर रहा था, और मुझे COM ऑब्जेक्ट का उपयोग करने के लिए वास्तव में इसकी आवश्यकता नहीं थी। धन्यवाद। – Arthur
डाउनवोट क्योंकि यह सच नहीं है। विंडो/जीयूआई अनुप्रयोगों के लिए आपका कथन सही है, प्रोजेक्ट विज़ार्ड एक CWinApp व्युत्पन्न क्लास बनाएगा। लेकिन जब आप MFC समर्थन के साथ एक सांत्वना आवेदन बनाते हैं, तो एक मुख्य (_tmain) समारोह के साथ स्रोत कोड बनाई गई है और AfxWinInit MFC स्थापित करने के लिए पहले कहा जाता है। –