关于调用动态链接库DLL中函数的返回值的取值问题

sunjiancn 2006-08-08 06:29:16
用一个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个返回值啊?
...全文
276 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Knight94 2006-08-08
  • 打赏
  • 举报
回复
调用不用改
Knight94 2006-08-08
  • 打赏
  • 举报
回复
加上Out标示试试
例如:
[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就足够了。
sunjiancn 2006-08-08
  • 打赏
  • 举报
回复
var 是Delphi/pascal里的REF

我郁闷.....
Knight94 2006-08-08
  • 打赏
  • 举报
回复
没道理,var定义的应该是引用类型
sunjiancn 2006-08-08
  • 打赏
  • 举报
回复
调用的时候变量我都初始化了
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...
Knight94 2006-08-08
  • 打赏
  • 举报
回复
yun~

你调用的时候,需要定义这么多变量,例如
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参数。
sunjiancn 2006-08-08
  • 打赏
  • 举报
回复
恕小弟茅塞开一半,把加载动态链接库的类改成兄所言
[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个返回值啊?
没受过系统教育 呵呵
Knight94 2006-08-08
  • 打赏
  • 举报
回复
to 请问调用GetTerTime这个函数时传入TerNo,Port两个参数之后 怎么取Y,Mon,d,h,min,s,w等7个返回值啊?

out参数,你应该如下去定义

[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);

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧