需要使用ANSI C实例化外部.NET对象的帮助!

问题描述 投票:-1回答:1

我正在使用低级ANSI C编写的开源项目(对此我无能为力)。我正在尝试将Microsoft Office Interop功能集成到该项目的Windows版本中。具体来说,我想利用这些功能来生成Excel工作簿。

如果使用C#或C ++,这对我来说不是问题,因为我已经无数次这样做了。但是我完全不知道如何在低级C语言中执行此操作!我需要从中获取的DLL是Microsoft.Office.Interop.Excel.dll。在C#中,它将如下所示:

using Microsoft.Office.Interop.Excel;

public static class Excel
{
    private static Microsoft.Office.Interop.Excel.Application m_oExcelApp;
    private static Microsoft.Office.Interop.Excel.Workbooks m_oBooks;
    private static Microsoft.Office.Interop.Excel._Workbook m_oBook;
    private static Microsoft.Office.Interop.Excel._Worksheet m_oSheet;
    private static Microsoft.Office.Interop.Excel.Range excelRange;

    public static void MakeBook()
    {
        m_oExcelApp = new Microsoft.Office.Interop.Excel.Application();
        m_oExcelApp.Visible = false;
        m_oSheet = null;
        m_oBooks = null;
        excelRange = null;

....等等。如果我能走得这么远,我会很高兴!但据我所知,DllImport仅允许您导入函数;即我无法弄清楚如何将它用于instantiate该DLL中的对象(即创建Microsoft.Office.Interop.Excel.Application()的实例,要充分利用这些实例,必须使用该实例库)。

[请理解,我完全意识到这是一项艰巨的任务,而在低级C语言中执行此任务不是我的选择!但是我坚持下去,我的截止日期有些紧迫,如果你们中的任何一个比我更精通低级C语言,并且可以帮助我移植上面的代码,我将非常感谢您帮助!

谢谢!

编辑:我感谢概念上的建议,但是我[确实需要一些示例C代码来向我展示如何真正实现它!拜托大家,有人必须能够帮助我!我不需要很多,只是一个小例子,向我展示了如何在我要尝试做的事情中做到这一点,我可以从那里开始处理它。

c .net object instantiation dllimport
1个回答
0
投票
将对象包装为不透明的句柄,然后将要在C中使用的方法包装为采用不透明句柄的COM函数可能会更容易。有关更多信息,this MSDN article可能是一个不错的起点。
© www.soinside.com 2019 - 2024. All rights reserved.