C# API组件

C# API组件,c#,api,vb6,C#,Api,Vb6,在我的VB6.0时代,我使用了大量的windows API。所以我的想法是,我声明的所有API方法几乎都是基于过程的——或者它有一个基于过程的入口点 我的问题: 我已经用C编写了一些代码,需要从VB6.0访问这些代码。是否可以将我的C#代码编译成DLL并从VB6.0中访问该C#DLL,并将其声明为API调用?如果是,如何做到这一点 (我已经尝试过让我的C#DLL COM兼容,并且成功了——但我还是想尝试上面提到的方法) 谢谢不,您不能将C#DLL的入口点作为Win32风格的API公开。如果确实需

在我的VB6.0时代,我使用了大量的windows API。所以我的想法是,我声明的所有API方法几乎都是基于过程的——或者它有一个基于过程的入口点

我的问题:

我已经用C编写了一些代码,需要从VB6.0访问这些代码。是否可以将我的C#代码编译成DLL并从VB6.0中访问该C#DLL,并将其声明为API调用?如果是,如何做到这一点

(我已经尝试过让我的C#DLL COM兼容,并且成功了——但我还是想尝试上面提到的方法)


谢谢

不,您不能将C#DLL的入口点作为Win32风格的API公开。如果确实需要为.NET库创建过程入口点,那么最好使用C++/CLI创建一个混合模式包装库。但这似乎是一项艰巨的工作:将C#类作为COM对象公开可能会省力得多,也更易于维护。

不,不能将C#DLL的入口点作为Win32风格的API公开。如果确实需要为.NET库创建过程入口点,那么最好使用C++/CLI创建一个混合模式包装库。但这似乎是一项艰巨的工作:将C#类公开为COM对象可能会省力得多,维护起来也容易得多。

如果你很乐意弄脏你的手,你可以使用MSIL做你想做的事。看一看演练。

如果你很乐意弄脏你的手,你可以使用MSIL做你想做的事情。查看演练。

您不想让C#DLL COM兼容有什么特别的原因吗?您不想让C#DLL COM兼容有什么特别的原因吗?