【问题标题】:Excel COM add-in DLL's - Can I use directly from C#?Excel COM 加载项 DLL - 我可以直接从 C# 使用吗?
【发布时间】:2012-02-12 11:53:40
【问题描述】:

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

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

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

性能对我来说很重要,尝试通过 Excel 调用 DLL 代码非常痛苦。我不确定 Excel 是否是违规者,但显然消除尽可能多的中间人接触是理想的。

【问题讨论】:

  • 这些是我公司编写的专有 DLL,可能是也可能不是非托管 C++ DLL - 无法分辨。根据一些 Google 搜索,如果没有商业工具,似乎几乎不可能对 DLL 代码的调用进行逆向工程......

标签: c# excel dll com


【解决方案1】:

我建议先找出它们是否确实是 COM DLL。您可以使用depends .exe 来查看DLL 是否导出了一些预期的COM 函数:DllGetClassObjectDllCanUnloadNow 是很好的指标。如果是这样,您也许可以使用Visual Studio 将 DLL 直接导入您的项目。我的直觉告诉我,这种方法取决于支持 OLE 自动化的 COM 对象,因此您的情况可能会有所不同。

否则,您可能只有一个普通的旧 DLL。同样,找出导出的函数,并使用p/invoke 获取有关如何正确签名的指导。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2010-10-06
    • 1970-01-01
    • 2019-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多