用一个RefComm类
public class RefComm
{ [DllImport("TerAccDll.dll", EntryPoint="GetTerTime ",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)] public static extern int GetTerTime (int a,int b); }
调用一个动态链接库TerAccDll.dll.动态链接库的GetTerTime函数一个取时间函数.其参数结构为
function GetTerTime (
TerNo:integer;
var y,Mon,d,h,min,s,w:integer;
Port:integer =1):integer;
参数
TerNo 为一个输入参数。
Y,Mon,d,h,min,s,w 为返回日期和时间,分别为年,月,日,时,分,秒,星期。其中星期天为0,星期一为1,依此类推。
Port 为一个输入参数。
如果函数调用成功,返回值为1。请问调用GetTerTime这个函数时传入TerNo,Port两个参数之后 怎么取Y,Mon,d,h,min,s,w等7个返回值啊?
public class RefComm
{ [DllImport("TerAccDll.dll", EntryPoint="GetTerTime ",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)] public static extern int GetTerTime (int a,int b); }
调用一个动态链接库TerAccDll.dll.动态链接库的GetTerTime函数一个取时间函数.其参数结构为
function GetTerTime (
TerNo:integer;
var y,Mon,d,h,min,s,w:integer;
Port:integer =1):integer;
参数
TerNo 为一个输入参数。
Y,Mon,d,h,min,s,w 为返回日期和时间,分别为年,月,日,时,分,秒,星期。其中星期天为0,星期一为1,依此类推。
Port 为一个输入参数。
如果函数调用成功,返回值为1。请问调用GetTerTime这个函数时传入TerNo,Port两个参数之后 怎么取Y,Mon,d,h,min,s,w等7个返回值啊?
public static extern int GetTerTime (int TerNo,ref int y, ref int Mon, ref int h, ref int min, ref int s, ref int w, int Port);
[DllImport(...)]
public static extern int GetTerTime (int TerNo,ref int y, ref int Mon, ref int h, ref int min, ref int s, ref int w, int Port);
后,怎么在调用GetTerTime 的时候用OUT参数取出Y,Mon,d,h,min,s,w等7个返回值啊?
没受过系统教育 呵呵
int TerNo,y, Mon, h, min, s, w, Port;
//init "TerNo" & "Port"
GetTerTime( TerNo, ref y, ref Mon, ref h, ref min, ref s, ref w, Port );
等调用完了,然后读取y这些变量就自然获得,它们属于out参数。
int TerNo=1,y=1,Mon=1,h=1,min=1,s=1,w=1,Port=1;
GetTerTime( TerNo, ref y, ref Mon, ref h, ref min, ref s, ref w, Port );
之后怎么y这些变量还是1啊 正确的数据应该是06...
例如:
[DllImport(...)]
public static extern int GetTerTime (int TerNo,ref int y, ref int Mon, ref int h, ref int min, ref int s, ref int w, int Port);把上面的ref int改为[Out] ref int不过这也是碰碰运气,按说ref就足够了。