Как сделать этот код как customevents, чтобы получить обратный вызов, возвращающий значения
Дорогой
у меня есть исходный код с помощью функции обратного вызова.Эта функция обратного вызова возвращает различные сообщения о состоянии.если я создал эту функцию обратного вызова кода как DLL, то я не знаю, как вернуть значения этой функции обратного вызова из моей DLL в мое приложение.для меня эта dll не возвращает значения обратного вызова в мое приложение.Можете вы пожалуйста помочь мне.
Есть ли какие-либо способы использовать этот код в качестве пользовательских событий?
Пожалуйста, помогите мне.
Этот код ниже я создал как dll.когда я вызываю функцию TriggerTrx (), она указывает на обратный вызов этого обратного вызова, получая некоторые сообщения о состоянии .мой вопрос заключается в том, когда я делаю этот код как dll.после этого, если я использую эту dll в каком-то другом приложении, как я получу эти сообщения о состоянии, возвращающиеся из функции обратного вызова.
можете вы пожалуйста помочь мне.
Что я уже пробовал:
public class POS_PAYMENT { public delegate void CallBack(string strParam); string strParameter = string.Empty; public string CheckExistance(string nPort) { Int32 iRe = -1; string sReturnCode = string.Empty; string sRetCode = string.Empty; iRe = spanInteg.CheckExistance(nPort); sRetCode = DispResult(iRe); if (sRetCode == "0000") { sReturnCode = sRetCode; } else { sReturnCode = sRetCode; } return sReturnCode; } public string DispResult(int iRet) { string RetCode = string.Empty; switch (iRet) { case (int)ReturnCode.API_FAILED: RetCode = "0105"; break; case (int)ReturnCode.API_LIBRARY_FAILED: RetCode = "0102"; break; case (int)ReturnCode.API_NO_RESPONSE: RetCode = "0103"; break; case (int)ReturnCode.API_PORT_OPEN_FAILED: RetCode = "0104"; break; case (int)ReturnCode.API_TIMEOUT: RetCode = "0106"; break; case (int)ReturnCode.API_OK: RetCode = "0000"; break; } return RetCode; } public string TriggerTrx(string sPort, string sTrxtype, string sCardNumber, string sTotalAmt, string sSubNumber) { Int32 iRet = -1; string sReturnCode = string.Empty; string sRetCode = string.Empty; IntPtr intptr_delegate = Marshal.GetFunctionPointerForDelegate(new CallBack(CallBackFunction)); iRet = spanInteg.TriggerTrxTrack2WithListenerWithCom(sPort, intptr_delegate, sTrxtype, sCardNumber, sTotalAmt, sSubNumber); sRetCode = DispResult(iRet); if(sRetCode == "0000") { sReturnCode = sRetCode; } else { sReturnCode = sRetCode; } return sReturnCode; } void CallBackFunction(string strParam) { MessageBox.Show(strParam); }