से डेल्फी डीएलएल फ़ंक्शन को कॉल करना मेरे पास डेल्फी 2007 में संकलित एक डीएलएल है और अन्य डेल्फी प्रोजेक्ट में इसका उपयोग करने वाला एक उदाहरण है।सी # कोड
TErrorCallback = function(Msg:PChar):byte of object;
TSaveEventCallback = function (Line:PChar; HiCode:PChar; LoCode:PChar; MobileNo:PChar):byte of object;
function InitModule(ErrorCallback:TErrorCallback; SaveEventCallback :TSaveEventCallback; MainWindowHandle:THandle; Sock_Event:integer):byte; stdcall; external 'My.dll' name 'InitModule';
function DLLSocketEvent(var msg: TMessage): byte; stdcall; external 'My.dll' name 'DLLSocketEvent';
function InitObjList(Objs: array of PChar; NumObjs: byte; Name: PChar):byte; stdcall; external 'My.dll' name 'InitObjList';
यहाँ है मेरी सी # एनालॉग और:: यहाँ कोड का एक हिस्सा है
class Message
{
unsigned int msg;
int wParam;
int lParam;
int result;
};
delegate byte ErrorCallbackDelegate(string msg);
delegate byte SaveEventCallbackDelegate(string line, string hiCode, string loCode, string mobileNo);
[DllImport("My.dll")]
static extern byte InitModule(ErrorCallbackDelegate errorCallback, SaveEventCallbackDelegate saveEventCallback, IntPtr mainWindowsHandle, Int32 sockEvent);
[DllImport("My.dll")]
static extern byte DllSocketEvent(Message msg);
[DllImport("My.dll")]
static extern byte InitObjList(string[] objs, byte numObjs, string name);
बिंदु मैं केवल InitModule विधि की कोशिश की है और यह एक अपवाद throwed है: PInvoke कार्य करने के लिए एक कॉल 'ProjTest! ProjTest.MyClass :: InitModule' ने स्टैक को असंतुलित किया है। ऐसा संभव है क्योंकि प्रबंधित PInvoke हस्ताक्षर अप्रबंधित लक्ष्य हस्ताक्षर से मेल नहीं खाता है। जांचें कि कॉलिंग सम्मेलन और PInvoke हस्ताक्षर के पैरामीटर लक्ष्य अप्रबंधित हस्ताक्षर से मेल खाते हैं।
कृपया, इसके साथ मेरी सहायता करें। सी # में इन डीएलएल कार्यों का वर्णन कैसे करना चाहिए?
नीचे वोट क्यों? –