直接上代码:
extern “C" long_stdcall NVD_Connect(const char* Addr,int nChn,int nPort,const char* UserName,const char* Passwords,long* plHandle)
参数说明:
Addr:通讯地址 (支持IP地址) in
nChn:通道索引(0~~最大通道-1) in
nPort:通讯端口 (默认554) in
UserName:用户名 (0~256字节) in
Passwords:密码(0~256字节) in
plHandle:返回当前连接的操作句柄 out
返回值
执行成功返回0 错误返回错误码
用C# 封装如下:
[DllImport("****.dll")]
public static extern int devwdm_GetImageBuffer(string Addr,int nChn,int nPort,string UserName,string Passwords,ref int plHandle);但是调用的时候总是出现:
于是报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
将
string UserName,string Passwords
改为:
stringbuilder UserName,stringbuilder Passwords
也是不行 还是同样的错误
求解决啊 谢谢
extern “C" long_stdcall NVD_Connect(const char* Addr,int nChn,int nPort,const char* UserName,const char* Passwords,long* plHandle)
参数说明:
Addr:通讯地址 (支持IP地址) in
nChn:通道索引(0~~最大通道-1) in
nPort:通讯端口 (默认554) in
UserName:用户名 (0~256字节) in
Passwords:密码(0~256字节) in
plHandle:返回当前连接的操作句柄 out
返回值
执行成功返回0 错误返回错误码
用C# 封装如下:
[DllImport("****.dll")]
public static extern int devwdm_GetImageBuffer(string Addr,int nChn,int nPort,string UserName,string Passwords,ref int plHandle);但是调用的时候总是出现:
于是报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
将
string UserName,string Passwords
改为:
stringbuilder UserName,stringbuilder Passwords
也是不行 还是同样的错误
求解决啊 谢谢
解决方案 »
- C#dll调用
- 新人求助
- 如何在tabpage中显示Excel表
- 哪位大虾帮下忙了,把代码写上了谢谢!菜鸟自学的不太懂了,读入一个C#文件,请各位大虾帮忙写写了,菜鸟有礼了,急啊急啊
- c#读取dcm文件(不想用vtk),求高手帮助
- 如何取得数组的中元素的值?
- 关于返回值的问题。
- 一个程序如何包含另一个程序?
- 做一个服务,load之后xml中的文件有我输入的ID,在另一端输入数据的时候还是报找不到xml我输入的id,这是什么情况?
- 那里有脚本执行控件
- socket通信是不是只有在receive的时候才能接收到远程socket send的数据?
- winform,请问如何判断鼠标从窗体移出的方向?谢谢
这个好像也试过
貌似也不行啊
long * para1 对应 ref UInt32 para1
试试! C里面*是指针 所以应该是引用类型的加ref
int _stdcall Ifn_ReadCard_USER(int * ret1, char * ret2, int * ret3, long * ret4, unsigned long * ret5, long * ret6, char * ret7, int * ret8, long * ret9, long * ret10, long * ret11, long * ret12, long * ret13, char * ret14);
//验卡
//输入参数: 无
//输出参数:
//ret1: 卡状态值 int
//ret2: 卡应用号 9BYTE Number
//ret3: 卡类型 int
//ret4: 当前余额 long
//ret5: 设备当前剩余额度 unsigned long
//ret6: 押金 long
//ret7: 卡出售日期 8Byte Number yyyyMMdd
//ret8: 应收租金月份 int
//ret9: 应收租金金额 long
//ret10:可退实际金额 long
//ret11:退卡手续费 long
//ret12:
//ret13:
//ret14:卡片交易记录 300BYTE ASSCII //{交易日期时间[14] + 类型[1](0充值,1消费) + 交易值[6](分) + 终端代号[9]}×10
//ret15:卡终止日期[DllImport("sztapp.dll", EntryPoint = "Ifn_ReadCard_USER", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
public static extern int Ifn_ReadCard_USER(ref int ret1, [MarshalAs(UnmanagedType.LPArray)]byte[] ret2, ref int ret3, ref UInt32 ret4, ref UInt32 ret5, ref UInt32 ret6, [MarshalAs(UnmanagedType.LPArray)]byte[] ret7, ref int ret8, ref UInt32 ret9, ref UInt32 ret10, ref UInt32 ret11, ref UInt32 ret12, ref UInt32 ret13, [MarshalAs(UnmanagedType.LPArray)]byte[] ret14);