AndyCai:<br>>>windbell 所说的方法意思是在dll中定义几个个全局变量,把全局变量的值赋给get函数中的变量<br>windbell说的可不是这个意思,你没理解啊<br>他说的意思是:在主程序中,var a,b:integer;然后,用a和b作为参数调用DLL中的函数,<br>get(a,b);<br>而在DLL中,函数的声明是下面这样的,<br>procedure get(var i,j:integer);stdcall;<br>begin<br>i:=a;<br>j:=b;<br>end;<br>============================================<br>这样解释,你明白了吗?<br><br>再说得详细一点,就是下面这样:<br>如果DLL中函数的参数或返回值是指针,那么一定要在概念上非常清晰明确。<br>总的来说,就是你要向人家传递指针,那么你就要分配内存,调用完毕后,你再释放内存;<br>反之,人家要向你返回指针,那么就是人家分配内存,使用完毕后,人家释放内存。如果<br>采用的是内存映射文件这样的共享内存,则使用完后,双方都可以释放。<br>那么,Delphi在函数声明中,应该用“var xxx: Txxx”的写法。<br><br>