您的位置:首页 > 编程语言 > Delphi

.net DLL 注册 regasm delphi调用

2017-03-22 10:05 274 查看
.net DLL 注册 regasm

regasm

regasm myTest.dll

regasm.exe

打开vs2005自带的工具“Visual Studio 2005命令提示”,输入上述命令

在没有安装vs开发环境的电脑上,必须安装。net framwork环境2.0以上,或根据项目要求安装合适的framwork版本。

不能再普通的cmd命令下执行,找不到命令。

进入普通的cmd窗口

cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727

进入这个目录下,再执行regasm命令就可以识别了。

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm d:\app\mytest.dll

C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\regasm test.dll /tlb:test.tlb

有的dll只能用4.0注册,2.0注册失败。

RegAsm : error RA0000 : “E:\MYDEV\test.dll”不是有效的 .NET 程序集,因 此未能加载它

delphi调用

方法一

打开vs2005自带的工具“Visual Studio 2005命令提示”,输入 TlbExp 路径/TestClass.dll 得到一个TestClass.tlb 文件。打开Delphi,选择“Project”--“import type library”找到刚才的TestClass.tlb,点击 CreateUnit,生成生成的TLB的pas文件

var aClass: TestClass;

begin

aClass : = CoTestClass.Create;

aClass. YourProcedure ('参数');

end;

方法二、不需生成tlb文件,仿照调用Excel的方式。代码如下:

var aClass: Variant;

begin

aClass:= CreateOleObject('TestDll.TestClass');

aClass.YourProcedure ('参数');

end;

vs2015 c#封装com文件

Properties\AssemblyInfo.cs

[assembly: ComVisible(true)];//从fasel改为true

也可以在工程里改

右键单击工程--》属性--》应用程序--》点击程序集信息--》最下面的复选框(使程序集Com可见)

TlbExp 路径/TestClass.dll 得到一个TestClass.tlb 文件

regasm MyEnCrypt.dll /tlb:MyEncrypt.tlb

TlbExp TestClass.dll

查找delphi生成的TLb文件里的

Co*** = class
class function Create: **ComInterface;
class function CreateRemote(const MachineName: string): **ComInterface;
end;

imcom:IMComInterface_TLB._CIMComInterface;

imcom := IMComInterface_TLB.CoCIMComInterface.Create;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: