C#调用DLL问题???????
读卡。函数原形: 返回值:见注1。
int ReadCard(char * room, char * gate,char * stime, char * guestname, char * guestid, char * track1, char * track2, long * cardno, int * st);
参数:
room [out]:字符串指针,接收返回的房号,建议10字节。
gate [out]:字符串指针,接收返回的授权公共通道,可以为NULL。
Guestname [out]:字符串指针,接收返回的客人姓名,可以为NULL。
Guestid [out]:字符串指针,接收返回的客人ID,可以为NULL。
track1 [out]:接收磁卡第1轨数据,可以为NULL。
track2 [out]:接收磁卡第2轨数据,可以为NULL。
Cardno [out]:长整形指针,接收返回的卡号,可以为NULL。
St [out]:整形指针,接收返回的卡状态,1-正常使用,3-正常注销,4-遗失注销,5-损毁注销,6-自动注销。可以为NULL。
char * 测过对应的out string 或out StringBuild 或ref
long * 测过对应的out int 或 out long 或ref
int * 测过对应的out int 或 out IntPtr 或ref
再在不知道啥原因了,求救,谢谢
------解决方案--------------------重新描述以下你的问题可能好点。
------解决方案--------------------StringBuilder sb = new StringBuilder(512);
传出的字符串只能用StringBuilder
注意,一定要分配购空间!
------解决方案--------------------[DllImport( "YOU.dll ", EntryPoint = "ReadCard ", CharSet = CharSet.Unicode)]
unsafe public static extern int SoundCom([MarshalAs(UnmanagedType.LPStr)]string room,[MarshalAs(UnmanagedType.LPStr)]string gate.....)
你这样调用一下.要是还是不行.你看看那个.dll文件的源程序,可能也有问题