需要用 C# 写一个 DLL 文件传一个 event 给 VB6.
DLL要怎么写?(我知道一定能做到,就是不知道要怎么写)
DLL要怎么写?(我知道一定能做到,就是不知道要怎么写)
解决方案 »
- 有一个比较特别的需求, 求高手们给点思路
- 百分求助,ReportViewer控件和MsChart相关问题,熟悉的进来看看,不甚感激
- 如何在C#中画流程图
- 在c#程序中调用sqlserver 2005 存储过程的问题
- 急啊~~~碰到这个错误信息: The remote server returned an error: (401) Unauthorized.
- datalist分别加连接
- C#中的string类型的容量问题`
- 关于使用Aspose.Words.dll操作word的问题
- 如何把同在一个dataset里面的2个具有相同结构的table里面的数据合并???
- TreeView在设计时正常,可运行时显示错误???
- Image控件中如何获取所打开图像的像素
- 一个亟待解决的非常有挑战性的问题,在线急等,高手请进!!
1、将 C# 编写的组件实现为 COM 组件(使用 ComVisible 属性),VB6 调用该 COM 组件;
2、升级你的 VB6 到 VB.NET,然后直接使用 C# 组件。
之前是用的[ComVisible(true)],VB6就调用的COM组件
event 我不是很懂,只知道个大概,要写出来就不行,非常希望做个非常简单的DLL传event到VB6的例子看看!
[InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] // 托管接口必须是 IDispatch
public interface IMathEvents
{
// 声明支持的事件
void OnOperationCompleted(string message);
}
然后定义一个实现该接口的类:[ClassInterface(ClassInterfaceType.None)]
[ComSourceInterfaces(typeof(IMathEvents))]
public class Math : ServicedComponent , IMath
{
public int Add(int x, int y)
{
if (null != this.OnOperationCompleted)
{
// 引发事件
this.OnOperationCompleted("Operation completed");
}
return x + y;
} [ComVisible(false)]
public delegate void OperationCompletedDel(string message);
public event OperationCompletedDel OnOperationCompleted;
}