日期:2014-05-18  浏览次数:20766 次

C#下调用C++ DLL中函数,参数类型的转换
C++ 中函数原型为 NVD_Connect( const char* pszAddr,const char* pszChn,int nPort,const char* pszUser,const char* pszPwd,long* plHandle ) 如果要在C#中定义此函数,参数的数据类型分别应该是什么?

------解决方案--------------------
NVD_Connect( string pszAddr,string pszChn,int nPort,string pszUser,string pszPwd,ref Int32 plHandle )
------解决方案--------------------
探讨

C# code
NVD_Connect( string pszAddr,string pszChn,int nPort,string pszUser,string pszPwd,ref Int32 plHandle )


转成成此类型,会出现如下错误

未处理的“System.AccessViolationException”类型的异常出现在 JGDVSSDKDemo.exe 中。
……

------解决方案--------------------
试试这样
C# code
NVD_Connect( string pszAddr,string pszChn,int nPort,string pszUser,string pszPwd,IntPtr plHandle )

------解决方案--------------------
探讨
C++ 中函数原型为 NVD_Connect( const char* pszAddr,const char* pszChn,int nPort,const char* pszUser,const char* pszPwd,long* plHandle ) 如果要在C#中定义此函数,参数的数据类型分别应该是什么?