为了C# COM组件的注册,浪费了我一天半的时间。现把经验分享出来。
C# COM组建的注册过程:
用Regsvcs /c DllName.dll注册新的COM组件,发现已有该组件则报错。
用Regsvcs /fc DllName.dll注册新的COM组件,发现已有该组件则覆盖。
用Regsvcs /u DllName.dll卸载COM组件。
Regsvcs.exe在Microsoft.NET的安装路径下。
但注意C#组件在编写时要注意几个规则:
1、编写的COM组件类要派生ServicedComponent,
否则会报找不到ServicedComponent的错误。
2、要加上命令'[assembly: ComVisible(true)]',
让COM组件可见。
3、要加上命令'[assembly: AssemblyKeyFileAttribute("RecordDB.snk")]',
创建一个密钥文件,用于创建强名称。
另外,注册完的DLL路径是可变的不是固定的,譬如你注册了这路径'C:/Windows/DllName.dll
',可执行文件在'D:/Test/',那么如果'D:/Test/'路径下有DllName.dll,则可执行文件
会调用'D:/Test/'路径下的DllName.dll文件。否则,可执行文件会去'C:/Windows'路径下
找DllName.dll文件。
分享到:
相关推荐
本文将深入探讨C#中如何创建、注册COM组件以及如何在其他应用程序中调用这些组件,这对于初学者来说是一次宝贵的学习机会。 首先,我们需要理解什么是COM组件。COM是微软提出的一种二进制标准,它允许不同语言编写...
安装了VS(我用的vs2012 64位) gacutil.exe路径 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools ...3、regasm dll文件名.dll /tlb:dll文件名.tlb 然后回车,显示注册成功
运行`regasm ComX.dll /codebase`命令,其中`ComX.dll`是你的COM组件文件名,这会将组件注册到系统注册表中。 在其他应用程序中使用这个COM组件,首先需要引用它。在VB6或.NET应用程序中,可以通过“引用”对话框...
一旦组件注册成功,接下来就是在C#项目中引用该COM组件。可以使用Visual Studio的“添加引用”功能来完成这一操作: 1. 打开Visual Studio,加载你的C#项目。 2. 右键点击项目名称,选择“管理NuGet包”,虽然这里...
使用`RegAsm.exe`工具或在项目属性中设置“注册为COM interop”选项,将C#类库注册为COM组件。注册完成后,C++就可以通过COM接口找到并调用C#代码了。 5. **C++调用C#的COM组件**: 在C++项目中,首先需要添加对...
通过这篇文章,读者可以了解COM组件的基本概念,如何新建一个Visual C#工程,编写导出接口,创建事件接口,创建具体类,注册COM组件,并使用VC6.0调用COM组件。 九、注意事项 在编写COM组件时,需要注意以下几点:...
- 在C#中编写COM组件意味着创建一个可以被其他应用程序(如VBScript、ASP、甚至其他支持COM的语言)使用的类库。 2. C#创建COM组件的步骤 - 首先,通过使用interface关键字定义COM接口,接口中可以包含方法、属性...
标题中的“PB调用c#com组件发送邮件.zip”表明这是一个关于使用PowerBuilder(PB)通过COM组件调用C#编写的邮件发送功能的示例。这个压缩包包含了一整套实现这一功能所需的资源,包括注册和反注册的批处理文件、C#...
5. **注册COM组件**:通过在命令行运行`regasm.exe`工具,或者在C#项目的属性设置中选择“注册为COM服务器”,将C#组件注册到系统COM注册表中。 6. **在C++中引用组件**:在C++项目中,你可以使用`#import`指令引入...
这里我们将深入探讨C#创建COM组件的过程,以及在VC++中如何使用这些组件,特别是涉及Int、String和BYTE[]类型的参数传递和返回值。 首先,让我们从C#编写COM组件开始。在Visual Studio 2005环境下,你需要创建一个...
C#的组件模型基于COM(Component Object Model)和.NET Framework的CLR(Common Language Runtime),这使得组件能够在各种.NET语言之间无缝交互。 首先,我们来看一下组件的创建过程。在Visual Studio中,开发者...
在.NET Framework中,组件可以注册到全局程序集缓存(GAC),这样它们可以被系统范围内的应用程序共享。这涉及到强命名,即给组件一个唯一的标识,防止命名冲突。 最后,本教程可能还涵盖了设计模式在组件开发中的...
示例中主要是讲了用c#实现COM组件的方法,有很大的参考价值. C#中COM组件的注册文件示例,C#组件示例
2. **注册COM组件**:编译完成后,使用regasm命令行工具将C#组件注册到系统的COM注册表中,使其可供其他应用程序查找和使用。 3. **在PB中引用组件**:在PowerBuilder中,你可以通过“外接程序”或者“ActiveX控件...
在本主题中,我们将深入探讨如何使用VC6.0和C#来创建COM组件,以及如何在不同的开发环境中,如VC6.0、C#、VB6.0和VB.NET中调用这些组件。 首先,我们来看VC6.0创建COM组件的过程。在VC6.0中,你可以通过MFC...
C++ COM组件的创建过程与C#类似,只是实现和注册部分有所不同,通常需要使用ATL项目模板来生成。一旦生成,C#可以通过`Type.GetTypeFromCLSID`或`Type.GetTypeFromProgID`获取COM组件的类型,并通过反射创建实例。 ...
1. **注册COM组件**:手动编写的COM组件通常需要在系统注册表中注册,以便C#可以找到它们。这通常通过运行包含组件的DLL的`regsvr32.exe`命令来完成。注册后,COM组件的信息会被存储在注册表中,包括CLSID(类标识符...
4. **注册COM组件**:使用`regasm`命令行工具或Visual Studio安装程序项目将C# DLL注册到COM组件注册表中,以便其他应用(如PB)能够找到它。 描述中提到的问题可能源于以下几个方面: 1. **注册问题**:如果DLL...
C#作为.NET框架的一部分,同样支持创建和使用COM组件。在本文中,我们将深入探讨如何使用C#编写COM组件,并理解其核心概念、步骤以及应用场景。 COM组件的核心理念在于接口,它定义了一组方法,而实现这些接口的...