VB6使用VB.NET类-速度较慢

VB6使用VB.NET类-速度较慢,vb.net,vb6,Vb.net,Vb6,我有一个VB6应用程序,它需要使用.NET类中的一些功能。我已经为.NET类创建了一个.tlb(类型库),VB6应用程序会调用它 问题是速度太慢了。我循环数据库中的每个记录,并为每个循环调用.TLB中的功能 我的问题是:这种方法天生就慢吗?这是什么原因 NET中的代码在VB6中被复制(我知道这不是一个好的做法-我没有这样做)。VB6代码用于使用VB6类,速度更快。这就是我认为使用.NET类太慢的原因。非托管代码到托管代码的转换可能很慢,因为您传递的任何数据结构都必须封送 例如,如果传递一个字符串

我有一个VB6应用程序,它需要使用.NET类中的一些功能。我已经为.NET类创建了一个.tlb(类型库),VB6应用程序会调用它

问题是速度太慢了。我循环数据库中的每个记录,并为每个循环调用.TLB中的功能

我的问题是:这种方法天生就慢吗?这是什么原因


NET中的代码在VB6中被复制(我知道这不是一个好的做法-我没有这样做)。VB6代码用于使用VB6类,速度更快。这就是我认为使用.NET类太慢的原因。

非托管代码到托管代码的转换可能很慢,因为您传递的任何数据结构都必须封送

例如,如果传递一个字符串,则整个字符串将复制到托管堆上的新.NET字符串对象中

如果您传递对对象的引用,那么将在.NET端生成一个RCW(运行时可调用包装器)。(从.NET调用这些对象可能会再次导致另一个方向的封送处理开销。)


有关更多详细信息,请参阅MSDN上的主题。

谢谢链接+1.