请问如何实现C#调用C++ dll动态链接库
通过C# 调用 C++ 的JNetLogin方法;
下面是C#的调用方法,但是一直报错,可能是参数的问题.请问如何修改下面的代码,谢谢!
[DllImport("JNetSDK.dll")]
public static extern long JNetLogin(string lpszIP, int iDevPort, string lpszUser, string lpszPassword, int iTimeOut, fcbJEvent * pfcbEvent, DWORD dwProtocol, long &lLogin, PSTJProxyParam pstProxy);
C++ API:
long JNetLogin(
LPCTSTR lpszIP,
int iDevPort,
LPCTSTR lpszUser,
LPCTSTR lpszPassword,
int iTimeOut,
fcbJEvent *pfcbEvent,
DWORD dwProtocol,
long &lLogin,
PSTJProxyParam pstProxy
)
typedef int (__stdcall fcbJEvent)(long lHandle, eJNetEvent eType,int iDataType,void* pEventData,int iDataLen,void* pUserParam);
typedef enum
{
JNET_EET_UNKNOWN = -1,
JNET_EET_LOGINING = 0,
JNET_EET_LOGIN_OK = 1,
JNET_EET_LOGIN_ERROR = 2,
JNET_EET_LOGOUT = 3,
JNET_EET_STREAM_OPENING = 4,
JNET_EET_STREAM_OK = 5,
JNET_EET_STREAM_ERROR = 6,
JNET_EET_STREAM_CLOSE = 7,
JNET_EET_PB_OPENING = 8,
JNET_EET_PB_OK = 9,
JNET_EET_PB_ERROR = 10,
JNET_EET_PB_CLOSE = 11,
JNET_EET_TALK_OPENING = 12,
JNET_EET_TALK_OK = 13,
JNET_EET_TALK_ERROR = 14,
JNET_EET_TALK_CLOSE = 15,
JNET_EET_UPG_START = 16,
JNET_EET_UPG_OK = 17,
JNET_EET_UPG_ERR = 18,
JNET_EET_CFG_SET = 100,
JNET_EET_CFG_GET = 101,
JNET_EET_PTZ_CTRL = 102,
JNET_EET_DEV_CTRL = 103,
JNET_EET_STREAM_LOST = 104,
JNET_EET_EVENT_NOTIFY = 201,
JNET_EET_EVENT_REC_DOWN = 303,
}eJNetEvent;