Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Excel中用C(+;+;)编写的外接程序中,如何获取调用该外接程序的函数的名称?_C++_C_Excel Addins - Fatal编程技术网

C++ 在Excel中用C(+;+;)编写的外接程序中,如何获取调用该外接程序的函数的名称?

C++ 在Excel中用C(+;+;)编写的外接程序中,如何获取调用该外接程序的函数的名称?,c++,c,excel-addins,C++,C,Excel Addins,标题说明了一切。我有一个Excel的外接程序,用 C++,我想登记几个不同的函数 Excel调用C++中的相同代码>外部“C”< /代码>函数, 在Excel中调用的函数上分派。但要做到这一点, 我需要能够确定调用它的Excel函数 编辑: 因为它似乎不清楚:我们有一个大型的插件库 EXCEL,用C++编写。我们正在扩展它,其中一个 我们想做的事情允许这个库支持插件 可能是用其他语言写的。(我们使用Python 例如,对于更高级别的东西,很多。)当我加载其中一个 这些插件,我得到了一个指向我需要

标题说明了一切。我有一个Excel的外接程序,用 C++,我想登记几个不同的函数 Excel调用C++中的相同代码>外部“C”< /代码>函数, 在Excel中调用的函数上分派。但要做到这一点, 我需要能够确定调用它的Excel函数

编辑:

因为它似乎不清楚:我们有一个大型的插件库 EXCEL,用C++编写。我们正在扩展它,其中一个 我们想做的事情允许这个库支持插件 可能是用其他语言写的。(我们使用Python 例如,对于更高级别的东西,很多。)当我加载其中一个 这些插件,我得到了一个指向我需要的函数的指针 注册,连同有关其参数的信息,返回 值等。我需要一些方法来注册这些函数 使用Excel,以便Excel用户可以访问它们。我的基本 我的想法是在我的图书馆里只有一个功能, 它将转发到所需的函数(通常是Python 函数,因此我将Excel参数整理成Python 列表中,使用
PyObject\u CallObject
调用Python函数,然后 然后将返回值整理回
xloper12
,然后 将其返回Excel。注册函数时
pxProcedure
string将始终是我的编组的名称 函数。
pxTypeText
pxFunctionText
将 每次都不一样。我需要做的是以某种方式获得
pxFunctionText
导致Excel调用我的函数,所以 我可以将它映射到参数列表(以了解我的实际类型) 参数是)和我实际使用的函数的地址 必须调用(Python中的
PyObject*

目前,格雷迪·普拉特的建议是关于 我想到的东西;它实际上可以解决两个问题 马上,因为它会给我一个命名的
va_args
也是一部分。但它提出的问题比它更多 答:如何从C++代码中定义宏,例如? 我在本机中找不到任何可用函数的组合
允许C++。< /p>沿着标签调度行的东西?你能制作一个VBI宏,它能像Dothiga(ARGs)-dodoTin(A,ARGS)那样进行调度吗?;我不知道问题域…@Niall或多或少。问题是获取标签。我不确定我是否遵循了,你控制源代码吗,即,你能重建它吗?@Niall我们控制它,但我们想让它更动态。“标签”应该是在Excel中注册函数的名称,这只会在运行时确定,而几个Excel函数最终调用C++中的一个函数,该函数以Excel函数的名称进行调度。