我希望有人能指出我的方向。我使用QT 4.8.5开发c ++项目。 我一直在阅读,但COM模型对我来说很新。我是否写了一个COM模型? DLL?
COM / DLL如何“知道”excel已经调用它,从而提供某种“确认”,然后调用program.exe中的doSomething()?
答案 0 :(得分:1)
执行此操作的一种方法是创建包含函数doSomething
的DLL,并按照此MSDN文章中所述从Excel调用它:How to: Access DLLs in Excel
您还可以从应用程序中创建COM组件。这样从Excel中访问会更容易一些(特别是涉及到参数类型时),但是如果你从未这样做过(你只需要调用一个函数),那么尝试“pure-DLL”可能会更好一些。 “ - 首先接受。
答案 1 :(得分:0)
您可以从excel调用DLL函数。 有了这个,你有两种可能性:
有关详情,请搜索网页或再次询问: - )
COM / DLL如何“知道”excel已经调用它,因此 提供某种“确认”,然后调用 program.exe中的doSomething()
Excel不会调用DLL,它会调用DLL中的函数(通过从VBA宏或电子表格公式调用它)。当这个函数执行时,它必须被某些东西调用(可能是Excel,除非你从其他地方调用它),所以它“知道”它已被调用。它可以通过它的回报价值提供反馈。
答案 2 :(得分:0)
PE文件(.exe)不导出函数。但是,您可以使用参数从excel执行程序并使用结果(将程序中的stdout读入excel)。
您可以使用宏来执行程序。但是,我拒绝编写Visual Basic(或者就此问题阅读它),所以很遗憾我无法提供任何示例代码。如果你搜索一下,它应该很容易获得。
答案 3 :(得分:0)
anyw ..我最终找到了一个我能理解的例子http://qt-project.org/doc/qt-4.8/activeqt-comapp.html
最终的VBA代码可以很容易地整合到Excel-vba中,而QT提供了一个简单易用的代码?在现有代码上编写COM包装器的方法