Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.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++窗体中Python接口的应用_Python_Visual C++_Macros - Fatal编程技术网

C++窗体中Python接口的应用

C++窗体中Python接口的应用,python,visual-c++,macros,Python,Visual C++,Macros,我是一名机械工程师,有一些编程技能,我需要更多编程经验的人给我一些建议。我正在编写一个优化平台,它将至少包括一个商业优化工具,一个商业设计程序和一个我用C++编写的程序。平台应为优化工具准备案例,该工具将以正确的顺序运行所有必要的程序。从我的平台设置优化工具的这一部分不是问题,因为我接受了一些培训,他们有很好的指导。此外,与这个商业设计程序的通信非常容易,因为它使用OLE接口,并且有大量的实例。 我有一个大问题的部分是为我的程序提供了很大的灵活性。这些计算主要基于经验相关性,我不想把它们放在代码

我是一名机械工程师,有一些编程技能,我需要更多编程经验的人给我一些建议。我正在编写一个优化平台,它将至少包括一个商业优化工具,一个商业设计程序和一个我用C++编写的程序。平台应为优化工具准备案例,该工具将以正确的顺序运行所有必要的程序。从我的平台设置优化工具的这一部分不是问题,因为我接受了一些培训,他们有很好的指导。此外,与这个商业设计程序的通信非常容易,因为它使用OLE接口,并且有大量的实例。 我有一个大问题的部分是为我的程序提供了很大的灵活性。这些计算主要基于经验相关性,我不想把它们放在代码中。我需要把它们拿出来,以便在出现新数据和新相关性的情况下方便地访问。我写的不仅仅是一些系数的变化,而是整个方程的变化。例如:假设某物用方程X=A*Y^3+B*Y^2+C*Y+D来描述。ABCD是系数,Y是从程序中的对象获取的值,X当然是解。但这可能有另一种关联,它可以考虑程序中对象的另一个值。X=A*Y^2+B*Z^2+Y/Z。因此,我需要一种方法,从我的代码中取出所有相关性,将它们放入单独的文件中,并能够创建新的相关性,以便它们能够访问我代码中的对象属性。 我一直在考虑使用Python宏,因为在这个商业设计程序中,它工作得很好,正如我所描述的那样,但我对它了解得越多,就越不知道它是否能工作。我正在编写Windows窗体应用程序,我使用VS2010。第一个问题是它是非托管的,整个程序都是托管的。 所以我用了这样的方法:

#pragma unmanaged
#ifdef _DEBUG
#undef _DEBUG
#include <python.h>
#define _DEBUG
#endif
#pragma managed

至少程序编译,但我有问题,从Pyton铸造非托管变量类型,以C++管理。 因此,我的第一个问题是:

在用VS编写的Windows窗体应用程序中,是否可以使用Python作为宏脚本工具

我在哪里可以得到更多关于这方面的信息?我在网上阅读了Python文档和一些教程,但都在Win32控制台应用程序中

也许我应该试着用boost?这对我有帮助吗

有没有简单易行的方法? 如果有人向我展示一个简单的表单应用程序,其中包含一个按钮、一个文本框和一个类,其中包含两个属性a和B,以及单独文件中的Python宏,该文件将X=a+B*2返回到此文本框,他将是我的英雄:

若前四个问题的答案是否定的,请至少给我一些提示,我可以用其他方式来做。 谢谢

对 示例中的应用程序类型并不重要。在大多数情况下,Python绑定和支持代码是相同的,只是不同于要计算的Python代码的来源,即应用程序中的配置文件或文本框。 Boost有一个python模块,它支持编写对象,这些对象在python中自动可用。当然,它没有手写的功能强大,但它应该足以满足您的需要。这可能是一个很好的起点,请参见: