我有一个vba项目我希望在c#wpf中做同样的事情,那么有什么方法可以使用相同的项目并使用wpf创建UI?有没有办法像创建这个vba项目的DLL并将其添加到新的wpf项目中并调用现有项目的API。
答案 0 :(得分:2)
不完全是。 VBA是VB6的残缺版本,因此您没有完整的类型库发布功能。也就是说,让VBA实现typelib发布的COM接口,然后将它们暴露给托管代码并通过COM interop从你喜欢的任何C#代码调用它们(包括WPF),这是可能(虽然相当痛苦) 。
基本上,您需要:
Voila-现在您可以直接从C#调用您的VBA代码。它是在几年前,但我已经用巨大的传统VBA代码库完成了这项工作并取得了巨大的成功。然而,这是一个非常痛苦的过程,充满了危险。泄漏接口很容易,COM接口和类型库版本控制存在许多问题,并且线程问题比比皆是。
所有这一切,如果你不知道如何做大部分这些事情,或者无法快速找到你需要的资源,你可能应该考虑将VBA移植到C#。
祝你好运!