Excel COM加载项DLL';s-我可以直接从C#使用吗

本文关键字:我可以 加载项 COM DLL Excel | 更新日期: 2023-09-27 18:20:29

如果答案显而易见,请原谅这个问题。我当然不是COM专家。

所以我有两个DLL,它们通常用作Excel的加载项(在Excel以编程方式打开后直接加载)。我假设它们是COM。如何判断它们是否是非托管的C++DLL?

我是否可以在C#项目中用作引用,并直接调用方法,而不是尝试通过Excel?这样做有什么诀窍吗?这是使用这些方法的最佳方式吗?

性能对我来说是一件大事,试图通过Excel调用DLL代码是非常痛苦的。我不确定Excel是否是罪魁祸首,但显然,尽可能多地消除中间人的接触是理想的。

Excel COM加载项DLL';s-我可以直接从C#使用吗

我建议先弄清楚它们是否真的是COM DLL。您可以使用dependent.exe来查看DLL是否导出了一些预期的COM函数:DllGetClassObject和DllCanUnloadNow是很好的指标。如果是这样,您可能可以使用Visual Studio将DLL直接导入到您的项目中。我的直觉告诉我,这种方法取决于支持OLE自动化的COM对象,所以你的里程数可能会有所不同。

否则,您可能只有一个普通的旧DLL。再次,找出导出了什么函数,并使用p/invoke来指导如何获得正确的签名。