.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;
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;
相关文章推荐
- Delphi 编写 DLL 返回字符串,.net 调用。
- C#的DLL注册为COM,Delphi来调用
- [原创]如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- delphi调用.net dll
- RegAsm注册DLL组件使用jacob调用的问题com.jacob.com.ComFailException: Can't co-create object
- 在.net中调用Delphi dll的Pchar转换
- C#的DLL注册为COM,Delphi来调用
- .net 调用delphi 的DLL
- delphi调用.net dll
- 如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- delphi调用.Net中的dll
- C#的DLL注册为COM,Delphi来调用
- regasm注册.net下的dll
- [原创]如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- 如何在Delphi中调用.Net编写的DLL中的函数(Function)、过程(Procedure)
- 续:Java Tomcat 中调用.net DLL的方法 导入文件gacutil 和 regasm
- delphi中用代码实现注册Ocx和Dll(有点怪异,使用CallWindowProc来调用指定函数DllRegisterServer)
- Delphi 怎么不注册 dll 就调用 com
- Delphi 编写 DLL 返回字符串,.net 调用。
- regasm注册.net下的dll