是否可以将Delphi流(TStream后代)传递给用c/c ++编写的DLL?DLL将用Microsoft c/c ++编写.如果那是不可能的,那么如果我们使用C++ Builder来创建DLL呢?或者,是否有可以在Microsoft C/C++和Delphi之间共享的Stream(FIFO)类?
谢谢!
Ken*_*ite 12
您可以使用IStream和TStreamAdapter执行此操作.这是一个简单的例子(在D2007和XE2中测试):
uses
ActiveX;
procedure TForm1.DoSomething;
var
MemStream: TMemoryStream;
ExchangeStream: IStream;
begin
MemStream := TMemoryFile.Create;
try
MemStream.LoadFromFile('C:\Test\SomeFile.txt');
MemStream.Position := 0;
ExchangeStream := TStreamAdapter.Create(MemStream) as IStream;
// Pass ExchangeStream to C++ DLL here, and do whatever else
finally
MemStream.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
为了以防万一,如果您需要采用其他方式(IStream
从C/C++ 接收),您可以使用TOleStream从IStream
Delphi获取TStream
.
归档时间: |
|
查看次数: |
1867 次 |
最近记录: |