में कॉल करने के लिए कैसे मैंने देव सी ++ में एक डीएलएल लिखा है। डीएलएल का नाम "DllMain.dll" है और इसमें दो कार्य हैं: HelloWorld
और ShowMe
। हेडर फाइल इस तरह दिखता है:सी ++ डीएलएल को सी #
DLLIMPORT void HelloWorld();
DLLIMPORT void ShowMe();
और स्रोत फ़ाइल इस तरह दिखता है:
DLLIMPORT void HelloWorld()
{
MessageBox (0, "Hello World from DLL!\n", "Hi",MB_ICONINFORMATION);
}
DLLIMPORT void ShowMe()
{
MessageBox (0, "How are u?", "Hi", MB_ICONINFORMATION);
}
मुझे DLL में कोड संकलन और सी # से दो कार्य कहते हैं। सी # कोड इस तरह दिखता है:
[DllImport("DllMain.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void HelloWorld();
[DllImport("DllMain.dll", CallingConvention = CallingConvention.Cdecl)]
public static extern void ShowMe();
जब मैं समारोह "HelloWorld" कहते हैं यह अच्छी तरह से चलाता है और एक संदेशबॉक्स पॉप अप होता है, लेकिन जब मैं फ़ंक्शन को कॉल ShowMe
एक EntryPointNotFoundException
होता है। मैं इस अपवाद से कैसे बचूं? क्या मुझे हेडर फ़ाइल में extern "C"
जोड़ने की आवश्यकता है?
क्या आप अपना सी ++ कोड पोस्ट कर सकते हैं? –
आपको शायद कॉलिंग कन्वेंशन को 'कॉलिंग कन्वेंशन .tdCall' में बदलना चाहिए। – Henrik