1、新建一个类库项目
2、将Class1.cs改为我们想要的名字
问是否同时给类改名,确定
3、修改Properties目录下面的AssemblyInfo.cs
ComVisible属性设置为True
4、项目菜单->MyLib属性
找到“生成”选项卡
往下看,找到“为 COM Interop 注册”勾上
5、继续往下,找到“签名”选项卡
勾上“为程序集签名”
在下面的下拉框里面选择“ <新建...>”
6、在弹出的对话框里面,输入MyLib。。或者随便取个名字
去掉使用密码保护文件的选项
7、开始编码,任何一个公开的类,必须有一个 I开通的接口定义
C# code
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
namespace MyLib
{
[ComVisible(true)]
[Guid("2CBD3D76-35F1-4f9d-9C1B-9DBFEE412F76")]
public interface IMyClass
{
void Initialize();
void Dispose();
int Add(int x, int y);
}
[ComVisible(true)]
[Guid("EA2F140A-108F-47ae-BBD5-83EEE646CC0D")]
[ProgId("MyLib.MyClass")]
public class MyClass : IMyClass
{
public void Initialize()
{
//nothing todo
}
public void Dispose()
{
//nothing todo
}
public int Add(int x, int y)
{
return x + y;
}
}
}
8、GUID属性里面的那个字符串,在“工具”菜单下面,“创建 GUID”
选择 Registry Format,然后复制
注意在[Guid("....... 这个里面要去掉GUID前后的花括号
如果在win7下编译时提示无权访问注册表,以管理员身份打开vs
9、编译它
在命令提示符下面,进入Dll所在的目录
用 gacutil /i MyLib.dll 将这个DLL加入的全局缓存里
然后用 regasm MyLib.dll 注册这个dll
10、在VBScript里面试试。。。
HTML code
<script language="VBScript">
Dim o : Set o=CreateObject("MyLib.MyClass")
o.Initialize
MsgBox "1 + 2 = " & o.Add(1,2)
o.Dispose
Set o=Nothing
</script>
原贴:http://www.cnblogs.com/Real_Dream/articles/1577938.html
11 , 在 vc里调用 需要 MFC的DISPATCH驱动类调用
分享到:
相关推荐
该游戏使用C语言编写,使用Windows API进行图形化显示。游戏的主要功能包括游戏桌面、游戏方块、游戏控制、游戏绘图和游戏回调函数等。 游戏设计 游戏的核心是俄罗斯方块的设计,包括七种不同的游戏方块形状:Z...
虽然STM32通常是用C或C++进行低级编程,但通过一些库和框架(如.NET Micro Framework或mbed OS),也可以使用C#进行开发。 从给出的部分内容来看,列表中的一系列PAC、PAD、PAJ、PAL、PAP、PAR、PAS、PAU、PAY和...
对于STM32 MiniF4x1Cx_V30 Board Shape 外形1,开发者可以使用C或C++编写程序,通过编译器生成二进制代码,然后通过编程工具烧录到STM32芯片中,实现特定的功能。同时,利用板载的接口,可以连接各种外围设备,进行...
在C#中,Office组件编程是一项重要的技能,它允许开发者利用.NET Framework的强大功能来创建、修改和自动化Microsoft Office应用程序,如Word、Excel、PowerPoint等。本实例将深入探讨如何利用C#与Office组件进行...
标签中的"stm32"表明这个开发板的核心是STM32微控制器,而"c#"可能是指在编写与开发板交互的应用程序时,可以使用C#语言。C#是一种面向对象的编程语言,尤其适合Windows平台的开发,通过.NET框架或者Monotouch、...
这个是在组件开发中遇到的问题,当时我在编写button的组件,模板是这样的: <button class=disable-hover button ion-button :class=[modeClass,typeClass,shapeClass,sizeClass,colorClass,roleClass,...
Java使用Com4j读取Visio是通过Java的COM(Component Object Model)接口来操作Microsoft Visio应用程序,实现对Visio文件的访问和处理。Com4j是一个开源库,它为Java提供了与COM对象交互的能力,弥补了Java不直接...
在软件开发领域,特别是Windows应用程序开发中,ActiveX控件作为一种重要的组件技术被广泛使用。Visual Basic(简称VB)作为一款强大的可视化编程工具,不仅支持丰富的内置控件,还允许开发者自定义控件。本文通过一...
Android-BackgroundLibrary.zip,一个通过标签直接生成形状的框架,无需再编写shape.xml(shape,shape.xml),安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建...
【标题】"3sdnMap.zip_3sdnmap_arcengine _arcengine 系统_visual c" 提供了几个关键信息点,它们涉及到GIS(地理信息系统)开发领域,特别是使用ArcEngine作为核心开发平台,并结合C#编程语言进行系统构建。...
4. **定位和调整图片**:插入图片后,可以使用`Shape.Left`和`Shape.Top`属性来定位,`Shape.Width`和`Shape.Height`来调整大小。例如: ```delphi var Picture: Variant; begin Picture := Worksheet.Pictures...
在C++.Builder中,这些概念可以通过直观的可视化组件和代码编辑器来实现,使得代码编写更加直观。 在“程序设置”这一主题中,我们将学习如何创建和配置C++项目。C++.Builder通常会引导我们进行新工程的创建,选择...
标题中的"C_src_files.tar.gz_C++_图像处理"表明这是一个使用C++编程语言编写的,专注于图像处理的源代码压缩包。这个压缩包包含了多个源文件,这些文件可能实现了不同的图像处理算法或功能。 1. **C++图像处理**:...
- **优秀的可视化应用程序开发工具**:采用可视化界面设计,极大地减少了程序员编写代码的工作量,让他们能够更专注于程序设计而非简单的重复工作。 - **强大的数据库应用程序开发功能**:提供丰富的数据库感知...
在Android游戏中,直接使用C++编写的Box2d可能较为复杂,因此通常会选择Java移植版JBox2d或通过JNI(Java Native Interface)进行封装。libgdx正是通过JNI封装了Box2d,使得开发者能够在Java环境中方便地使用Box2d的...
通过本教程,我们了解了如何使用Webots软件创建一个简单的机械臂模型,并为其编写基本的控制器程序。Webots提供了一个全面的平台,不仅支持创建各种类型的机器人模型,还可以进行高级的物理仿真和编程控制。无论是...
该语言结合了C和C++的强大功能以及Java的简单性和安全性,旨在提高开发人员的生产力。 ##### Microsoft.NET —— 一场新的革命 **1.1.1 什么是.NET** 2000年6月22日,微软宣布了.NET这一划时代的计划,标志着软件...
这个库是用C语言编写的,提供了读取和写入Shapefile的基本功能。在GIS(地理信息系统)领域,Shapefile是一种广泛应用的矢量数据格式,用于存储地理特征如点、线和多边形。Shapelib-1.2.10是该库的一个版本,它包含...
`,简化代码编写。 - **代码示例**: - 创建HALCON对象,如`Hobject Image;`。 - 调用HALCON函数进行图像处理,例如`read_image(&Image, "object");`。 - 使用`HTuple`类处理数组或元组数据。 - **编程特点**: ...
Word.InlineShape shape = doc.InlineShapes.AddPicture(imgPath); ``` 6. **保存和关闭文档** 完成操作后,别忘了保存和关闭文档及Word应用: ```csharp doc.Save(); doc.Close(); wordApp.Quit(); ``` 7...