最近因公司群发邮件程式需要给注册一段时间没有激活的用户发激活邮件邮件中有注册密码 需要还原发给用户 但由于密码加密是用C# 中的TripleDES完成手头上又没有现成Delphi的实现时间紧急现翻译是来不及了于是经过查资料反复实施 终于成功实现在Delphi中调用 C# 封装的DLL中的方法(Function)和过程(Procedure)现把实施步骤写下以供有需要的XDJM分享
建立DotNetFunccs 封装要使用的FunctionProcedure
生成密钥文件用于给程序集强名称签名
sn
k key
snk
使用强名称签名编译成类库
csc /t:library DotNetFunc
cs
生成类型库
tlbexp DotNetFunc
dll /out:DotNetFunc
tlb
注册dll
regasm DotNetFunc
dll
移入gac全局程序集缓存
gacutil
i DotNetFunc
dll
Delphi中的调用测试
uses Variants COMOBJ OleCtnrs Activex;
procedure TFormButtonClick(Sender: TObject);
var
SharpObject: Variant;
TestValue: string;
begin
try
try
SharpObject := CreateOleObject(CSharpServerSharpObject);
TestValue := SharpObjectDecryptTripleDES(EditText);
EditText :=TestValue;
except
on e: exception do
begin
ShowMessage(eMessage);
end;
end;
finally
SharpObject := Unassigned;
end;
end;
procedure TFormButtonClick(Sender: TObject);
var
SharpObject: Variant;
TestValue: string;
begin
try
try
SharpObject := CreateOleObject(CSharpServerSharpObject);
TestValue := SharpObjectEncryptTripleDES(EditText);
EditText :=TestValue;
except
on e: exception do
begin
ShowMessage(eMessage);
end;
end;
finally
SharpObject := Unassigned;
end;
end;
initialization
CoInitialize(nil);
finalization
CoUninitialize;
end