紧急求助,如何用c调用delphi写得dll!!(在线等!!!解决就结帖)
各位大虾,我现在需要用c或c++调用一个delphi写得dll,不知道如何调用,请大家指导一下,最好给出个例子,感激不尽!!
我得dll的源码如下,是解压和压缩的:
library ZIPDLL;
uses
ShareMem,
SysUtils,
Classes,
Windows,
ZLib;
{$R *.res}
function TestDll(i:integer):integer;stdcall;
begin
Result:=i+1;
end;
procedure CompressStream(SourceStream, DestStream: TStream);
var
CompressionStream: TCompressionStream;
Count: Integer;
begin
Count := SourceStream.Size;
DestStream.WriteBuffer(Count, SizeOf(Count));
CompressionStream := TCompressionStream.Create(clDefault, DestStream);
try
CompressionStream.CopyFrom(SourceStream, SourceStream.Size);
finally
CompressionStream.Free;
end;
end;
procedure UnCompressStream(SourceStream, DestStream: TStream);
var
DecompressionStream: TDecompressionStream;
Count: Integer;
begin
SourceStream.ReadBuffer(Count, SizeOf(Count));
DecompressionStream := TDecompressionStream.Create(SourceStream);
try
DestStream.CopyFrom(DecompressionStream, Count);
finally
DecompressionStream.Free;
end;
end;
procedure ZipFile(SFileName,DFileName: String);stdcall;
var
SourceStream, DestStream: TFileStream;
begin
SourceStream := TFileStream.Create(SFileName, fmOpenRead or fmShareDenyWrite);
DestStream := TFileStream.Create(DFileName, fmCreate);
try
CompressStream(SourceStream, DestStream);
FlushFileBuffers(DestStream.Handle);
finally
DestStream.Free;
SourceStream.Free;
end;
end;
procedure UnzipFile(SFileName,DFileName: String);stdcall;
var
SourceStream, DestStream: TFileStream;
begin
SourceStream := TFileStream.Create(SFileName, fmOpenRead or fmShareDenyWrite);
DestStream := TFileStream.Create(DFileName, fmCreate);
try
UnCompressStream(SourceStream, DestStream);
FlushFileBuffers(DestStream.Handle);
finally
DestStream.Free;
SourceStream.Free;
end;
end;
exports
testdll,
ZipFile,
UnzipFile;
begin
end.