【发布时间】:2011-07-26 03:07:58
【问题描述】:
我是一名具有一定编程技能的机械工程师,我需要一些编程经验丰富的人的建议。我正在编写一个优化平台,它将涉及(至少在开始时)一个商业优化工具、一个商业设计程序和一个我用 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 窗体应用程序,我使用 VS 2010。第一个问题是它是非托管的,整个程序是托管的。 所以我用了这样的东西:
#pragma unmanaged
#ifdef _DEBUG
#undef _DEBUG
#include <python.h>
#define _DEBUG
#endif
#pragma managed
至少程序可以编译,但我在将非托管类型的变量从 Pyton 转换为 C++ 托管时遇到问题。
所以我的第一个问题:
是否可以在用VS编写的Windows Form应用程序中使用Python作为宏脚本工具?
我可以从哪里获得有关此的更多信息?我在网上阅读了 Python 文档和一些教程,但都在 Win32 控制台应用程序中。
也许我应该尝试使用 boost?对我有帮助吗?
是否有一些简单易行的方法来做到这一点? (如果有人向我展示一个带有一个按钮、一个文本框和一个类的简单表单应用程序,该类具有两个属性 A 和 B 以及 Python 中的宏(在单独的文件中),它将返回 X = A + B * 2 到这个文本框,他会做我的英雄:)
如果前四个问题的答案是否定的,请至少给我一些提示,我该如何以其他方式做到这一点。 谢谢!
【问题讨论】:
标签: python visual-c++ macros