主程序怎么得到 Dll 里面的 Record?(50分)

  • 主题发起人 主题发起人 iCANK
  • 开始时间 开始时间
I

iCANK

Unregistered / Unconfirmed
GUEST, unregistred user!
Dll 里面假如有这么个 Record:<br>type<br>&nbsp; TData = record<br>&nbsp; &nbsp; s1: string;<br>&nbsp; &nbsp; s2: string;<br>&nbsp; end;<br><br>还有一个 produrce:<br>produre SetData(var Data: TData)<br>begin<br>&nbsp; Data.s1 := 'dsdfdfdf';<br>&nbsp; Data.s2 := '12345';<br>end;<br><br>那我在主程序中要怎样得到这个 record 呢?<br>我想是不是可以把这个 record 写到一个类里面,然后主程序和 dll 都 uses 这个类,但是<br>如果这个类有一个 GetData 函数用于返回修改后的 record 的值,那 GetData 这个函数要怎<br>么写呢?难道是 function GetData(Data: TData): TData ?<br><br>各位大虾帮帮忙!谢谢!
 
在项目文件中用sharemem,传入的确参数要为指针,就可以避免得到了
 
你自己想的已经很清楚了,<br>但其实不用什么 &nbsp;类 &nbsp;;<br>只要在调用的单元中重新定义一下<br>type<br>&nbsp; TData = record<br>&nbsp; &nbsp; s1: string;<br>&nbsp; &nbsp; s2: string;<br>&nbsp; end;<br>//与dll中定义的相同,注意元素的顺序要一致<br><br>这样就可以调用了function GetData(Data: TData)把值传出来了,<br>不要把值设在返回值里;用传址参数即可;<br>
 
function GetData(var Data: TData)<br>begin<br>SetData(Data)<br>end
 
后退
顶部