最近因公司群发邮件程式需要给注册一段时间没有激活的用户发激活邮件
邮件中有注册密码 需要还原发给用户 但由于密码加密是用C# 中的TripleDES
完成 手头上又没有现成Delphi的实现 时间紧急 现翻译是来不及了
于是经过查资料反复实施 终于成功实现在Delphi中调用 C# 封装的DLL
中的方法(Function)和过程(Procedure)现把实施步骤写下
以供有需要的XDJM分享:
1、建立:DotNetFunc.cs 封装要使用的Function、Procedure。
2、生成密钥文件,用于给程序集强名称签名
sn -k key.snk
3、使用强名称签名,编译成类库
csc /t:library DotNetFunc.cs
4、生成类型库
tlbexp DotNetFunc.dll /out:DotNetFunc.tlb
5、注册dll
regasm DotNetFunc.dll
6、移入gac全局程序集缓存
gacutil -i DotNetFunc.dll
7、Delphi中的调用测试
uses Variants, COMOBJ, OleCtnrs, Activex;
procedure TForm1.Button1Click(Sender: TObject);
var
SharpObject: Variant;
TestValue: string;
begin
try
try
SharpObject := CreateOleObject('CSharpServer.SharpObject');
TestValue := SharpObject.DecryptTripleDES(Edit1.Text);
Edit2.Text :=TestValue;
except
on e: exception do
begin
ShowMessage(e.Message);
end;
end;
finally
SharpObject := Unassigned;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
SharpObject: Variant;
TestValue: string;
begin
try
try
SharpObject := CreateOleObject('CSharpServer.SharpObject');
TestValue := SharpObject.EncryptTripleDES(Edit2.Text);
Edit1.Text :=TestValue;
except
on e: exception do
begin
ShowMessage(e.Message);
end;
end;
finally
SharpObject := Unassigned;
end;
end;
initialization
CoInitialize(nil);
finalization
CoUninitialize;
end.
分享到:
相关推荐
正如大家看到的,我们在external语句中指定了所要调用的DLL文件的名称。没有写路径是因为该DLL文件和调用它的主程序在同一目录下。如果该DLL文件在C:\,则我们可将上面的引用语句写为external ’C:\Delphi.dll’。...
delphi可以很方便的封装第三方库,导出dll,此方法可以很方便的生成供Qt或VC调用的Lib文件,免去动态加载的麻烦,喜欢的朋友可以试下。我就是这么用的。
用delphi语言编写的通达信DLL函数指标公式编程接口,里面有测试函数,已经测试通过。
将sqlite的简单功能(execsql, query)封闭到dll中.可通过标准c函数接口操作. 以前写过一个简单的类.可以供c/c++调用. 现在写了一个dll可以供其它语言环境使用. 代码中预留了其它数据库接口的扩展性.
delphi dll静态调用 动态调用 实例delphi dll静态调用 动态调用 实例
TSCLIB.dll 适用于delphi、vc、vb.net、jsp、java、asp.net、foxpro等,有大量编程案例参考,且有编程说明书、TSCLIB.dll文件、函数调用等,希望对你有帮助
delphi中调用dll中的函数来获得硬盘序列号,源码中包括了生成dll的源码。
详细描述Delphi 调用VC生成的DLL的方法,并有函数说明
delphi之调用外部dll中的函数[文].pdf
主程序用回调函数作为参数,调用DLL窗口,在DLL窗口中使用回调函数,反写主程序信息,实例中用DLL的编辑框反写主程序编辑框的内容
该压缩包包括:1....3.压缩包中包括VC++调用DLL的实例源码和Delphi调用DLL的实例源码和说明(利用前面VC++生成的DLL)!4.其中VC++调用DLL实例中还简单说明了计算string的长度,比较,大小写转换等功能实现的方法!
•Delphi程序之间调用DLL,如果要用String类型的话,要在引用的单元加上ShareMem 单元。 •如果Delphi写的DLL供其他开发工具使用的话,不要使用String类型,用PAnsiChar类型。 尽量使用标准DLL接口。指的是传递的...
delphi封装的回调函数DLL,为了自动触发事件
DLL函数动态调用工具1.0 使用Delphi + Asm编写,只要知道DLL中函数的名字和参数,就可以对任意Dll的函数进行调用。目前已经可以支持以下类型的参数和返回值:Boolean,Byte,Shortint,Word,Smallint,Longword,Integer,...
使用Delphi编写静态调用动态链接库(DLL),完成三个数的大小对比,求出最大值,最小值。
Delphi调用Google Tessercat 4.0 进行图像识别,只测试了基本的几个导出函数的使用,更多的导出函数请有需要的同学自己完成。
C#调用Delphi dll库文件,分别用函数和存储过程写的两种方法 在c#2013调试成本DELPHI7写的DLL文件
用delphi封装的调用回调函数的DLL
1。如何编写dll,示例两个,一个是double参数的,一个是...如何把调用tuxedo服务写成dll函数; 3。环境如何搭建的,如何进行调用的,例子很简单实用,细节描述也非常详细 绝对原创,7是我的幸运数字,7分绝对物有所值
封装https/http的get/post使用函数DLL文件,方便使用者调用,有调用示例程序;另外还有两个ansi与Utf8的转换, 调用示例: PostHttpsContext("current.sinaapp.com","/post.php","name=rain&age=12"); 调用示例: ...