首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

请教各位大侠,Delphi怎么通过DLL传递Stream

2013-07-01 
请问各位大侠,Delphi如何通过DLL传递Stream?做一个软件,因为里面有的函数需要经常更新,所以把函数封装在了

请问各位大侠,Delphi如何通过DLL传递Stream?
做一个软件,因为里面有的函数需要经常更新,所以把函数封装在了一个DLL里面
其中有一个函数是图像处理的,定义如下:
function GetScreen: TMemoryStream; stdcall;   //流文件里面是一张图片
函数没有问题,只是在调用的时候,根本调用不到数据,调用如下:
type
  TGetScreen = function :TMemoryStream;stdcall;
var
  GetScreen : TGetScreen;
  h:THandle;
  m:TJPEGImage;
begin
  m := TJPEGImage.Create;
  h := LoadLibrary('SysRun.dll');
  if h = 0 then Exit;
  @GetScreen :=GetProcAddress(h,'GetScreen');
  m.LoadFromStream(GetScreen);
  Image1.Picture.Assign(m);
  FreeLibrary(h);
end;
当然,还有其他方法可以实现,比如另存为图片后通过返回文件路径进行调用,但是我就是想试试能不能将Stream直接作为DLL返回参数调用?请大牛们不吝指教。


[解决办法]
调用的主程序开辟内存空间,再做一个入参给DLL
传出接收后再释放,就可以了。
[解决办法]
如果跨语言,传出stream没有意义

热点排行