有一个dll,C++的方法是这样的,主要是传结构体不怎么这块不太懂,C++SDK里的原方法
BOOL CALL_METHOD CLIENT_GetNewDevConfig(LONG lLoginID, char* szCommand, int nChannelID, char* szOutBuffer, DWORD dwOutBufferSize, int *error, int waittime);
[in]lLoginID,CLIENT_Login的返回值
[in]szCommand,命令参数,结构体。
[in]nChannelID,通道号
[out]szOutBuffer,输出缓冲,
[out]dwOutBufferSize,输出缓冲大小
[out]error,错误码
[in]waittime,等待超时时间
调用的时候 demo int nErr = 0;
char szOutBuffer[32*1024] = {0};
CFG_ANALYSEGLOBAL_INFO stuAnalysGlobalInfo = {0};
BOOL bSuccess = CLIENT_GetNewDevConfig(m_lLoginID, CFG_CMD_ANALYSEGLOBAL, nChannel, szOutBuffer, 32*1024, &nErr);
对C++不太懂,红色部分不太明白应该拿C# 怎么重写,这个结构体类型不是固定的,好几种类型结构体,有可能是CFG_ANALYSEGLOBAL_INFO,也有可能是 CFG_ANALYSEGLOBAL_INFO2,是不是要把 这个结构体的指针传过去呢? 求教。
BOOL CALL_METHOD CLIENT_GetNewDevConfig(LONG lLoginID, char* szCommand, int nChannelID, char* szOutBuffer, DWORD dwOutBufferSize, int *error, int waittime);
[in]lLoginID,CLIENT_Login的返回值
[in]szCommand,命令参数,结构体。
[in]nChannelID,通道号
[out]szOutBuffer,输出缓冲,
[out]dwOutBufferSize,输出缓冲大小
[out]error,错误码
[in]waittime,等待超时时间
调用的时候 demo int nErr = 0;
char szOutBuffer[32*1024] = {0};
CFG_ANALYSEGLOBAL_INFO stuAnalysGlobalInfo = {0};
BOOL bSuccess = CLIENT_GetNewDevConfig(m_lLoginID, CFG_CMD_ANALYSEGLOBAL, nChannel, szOutBuffer, 32*1024, &nErr);
对C++不太懂,红色部分不太明白应该拿C# 怎么重写,这个结构体类型不是固定的,好几种类型结构体,有可能是CFG_ANALYSEGLOBAL_INFO,也有可能是 CFG_ANALYSEGLOBAL_INFO2,是不是要把 这个结构体的指针传过去呢? 求教。
[in]char* 对应 string
[out]char* 对应 StringBulider(必须先分配)如果是结构,就先用C#定义一个结构,然后分配一个结构变量,且必须初始化该结构
如果此结构变量是in类型,则直接传递,如果是out类型则添加ref关键字传递