delphi如何调用如下的VC写的dll,在线等待 ( 积分: 100 )

  • 主题发起人 主题发起人 eigo
  • 开始时间 开始时间
E

eigo

Unregistered / Unconfirmed
GUEST, unregistred user!
RSA 加解密函数<br> &nbsp; &nbsp; &nbsp; &nbsp;功能:对给定的数据加或解密。加或解密是相同的,且使用同一个函数。<br>参数: &nbsp;BYTE &nbsp;iData[] &nbsp; &nbsp; &nbsp; &nbsp;要加密或解密的数据。<br>BYTE &nbsp;iSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nData[]的长度(字节数),应该 iSize&lt;= nSize。<br>BYTE &nbsp;Key[] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;加密或解密使用的密钥。<br>BYTE &nbsp;kSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Key[]的长度(字节数),应该kSize&lt;= nSize。<br>BYTE &nbsp;nData[] &nbsp; &nbsp; &nbsp; &nbsp;加密或解密使用的 N。<br>BYTE &nbsp;nSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nData[]的长度(字节数)Rsa计算尺寸<br>BYTE &nbsp;oData[] &nbsp; &nbsp; &nbsp; &nbsp;返回的加密或解密结果。<br>BYTE &nbsp;*pOSize &nbsp; &nbsp; &nbsp;返回的oData[]的长度(字节数)。<br>返回值:<br>格式: BYTE* &nbsp; Rsa(BYTE iData[], BYTE iSize, BYTE Key[], BYTE kSize, BYTE nData[], BYTE nSize, BYTE oData[], &nbsp;BYTE* pOSize);
 
RSA 加解密函数<br> &nbsp; &nbsp; &nbsp; &nbsp;功能:对给定的数据加或解密。加或解密是相同的,且使用同一个函数。<br>参数: &nbsp;BYTE &nbsp;iData[] &nbsp; &nbsp; &nbsp; &nbsp;要加密或解密的数据。<br>BYTE &nbsp;iSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nData[]的长度(字节数),应该 iSize&lt;= nSize。<br>BYTE &nbsp;Key[] &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;加密或解密使用的密钥。<br>BYTE &nbsp;kSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Key[]的长度(字节数),应该kSize&lt;= nSize。<br>BYTE &nbsp;nData[] &nbsp; &nbsp; &nbsp; &nbsp;加密或解密使用的 N。<br>BYTE &nbsp;nSize &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; nData[]的长度(字节数)Rsa计算尺寸<br>BYTE &nbsp;oData[] &nbsp; &nbsp; &nbsp; &nbsp;返回的加密或解密结果。<br>BYTE &nbsp;*pOSize &nbsp; &nbsp; &nbsp;返回的oData[]的长度(字节数)。<br>返回值:<br>格式: BYTE* &nbsp; Rsa(BYTE iData[], BYTE iSize, BYTE Key[], BYTE kSize, BYTE nData[], BYTE nSize, BYTE oData[], &nbsp;BYTE* pOSize);
 
急用 &nbsp;请高手和所有知道办法的朋友们指点
 
BYTE* &nbsp; Rsa(BYTE iData[], BYTE iSize, BYTE Key[], BYTE kSize, BYTE nData[], BYTE nSize, BYTE oData[], &nbsp;BYTE* pOSize);<br><br>在Delphi中声明函数<br><br>type<br>TRsa = function (iData: array of Byte; iSize: Byte; Key : array of Byte; kSize: Byte; nData : Array of Byte; nSize : Byte;oData: array of Byte; pOSize: PByte): PByte;stdcall;<br><br>TForm1 = class(TForm)<br>……<br>Rsa : TRsa<br>end;<br>……<br><br><br>下面的过程其他地方都可以找到<br>LoadLibary('xx')<br>GetProcAddress<br>FreeLibary;<br>大概是这样了
 
var<br>TRsa = Function(iData:array of byte; iSize: byte; key:array of byte; ksize:byte;nData:array of byte; nSize:byte;var oData:array of byte; pOSize:^byte):^byte;stdcall;<br>handle:THANDLE;<br>begin<br> &nbsp; &nbsp; LoadLibrary();<br>  @trsa= GetProcAddress();<br> &nbsp; &nbsp;@trsa(...);<br> &nbsp; &nbsp; <br>end;
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
915
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部