有关DLL的调用。。我如何调用这个方法啊。。。特别是里边的参数我不会写??
_int16 IC_Write(HANDLE idDev ,_int16 offset,_int16 len,unsigned char * databuffer)
说明:写入数据
调用:
HANDLE idDev-----initcomm返回的设备描述符
_int16 offset-------写ic卡起始地址
_int16 len ----------数据长度
unsigned char * databuffer------即将写入ic卡的数据,并存放返回数据
我如何调用这个方法啊。。。特别是里边的参数我不会写??
[DllImport("Lkic32.dll")]
static extern int IC_Write(?,?,?,?);
问题点数:100、回复次数:6Top
1 楼saucer(思归)回复于 2003-02-02 23:56:40 得分 0
try
static extern int IC_Write(IntPtr,short,short,StringBuilder);
or
static extern int IC_Write(IntPtr,short,short,MarshalAs(UnmanagedType.LPTStr)] ref string databuffer);
Top
2 楼qaqaqa(伊可爱)回复于 2003-02-03 00:13:43 得分 0
saucer(思归, MS .NET MVP
请将第二种给我详解。。。你费心Top
3 楼yarshray(saga jion(心飘情落))回复于 2003-02-03 00:39:59 得分 0
MarshalAs(UnmanagedType.LPTStr)]
是在做列集,就是封送你的数据,
一般StringBuilderTop
4 楼csdn_bob(文子)回复于 2003-02-03 21:07:01 得分 0
char *的参数,用StringBuilder申明就可以了!
如:a(char * text);在
c#中这样申明a(StringBuilder text);Top
5 楼saucer(思归)回复于 2003-02-04 12:07:26 得分 100
depending on what you are doing inside IC_Write:
1. if your operation is like:
strcpy(databuffer,"somethingInTheRange");
then you can use the first format and do
StringBuilder sb = new StringBuilder(1000);
sb.Append("SomeValue);
IC_Write(handle,0,sb.Length,sb);
2. if your operation is like
databuffer = new unsigned char[100];
//...
then you can use the second format and do
string s = "SomeValue";
IC_Write(handle,0,s.Length,ref s);
Top
6 楼qaqaqa(伊可爱)回复于 2003-02-05 08:20:04 得分 0
没看懂Top




