请教:如何在VC中调用python脚本,最好给出一个简单的例子,谢谢

vallan 2003-08-22 11:54:01
请教:如何在VC中调用python脚本,最好给出一个简单的例子,谢谢
...全文
261 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bbscbb 2003-09-02
  • 打赏
  • 举报
回复
下载boost,里面有支持python的 模块,cool闭了


我用mingw编译的,vc6,7就更方便了
dmchun 2003-08-28
  • 打赏
  • 举报
回复
也不知道PYTHON返回的列表在C++里变成了什么.
dmchun 2003-08-28
  • 打赏
  • 举报
回复
我想更通用的办法是C++调用一个.DLL,执行一个.PY,返回结果.但不知如何开始.
zhaoweikid 2003-08-28
  • 打赏
  • 举报
回复
/* Example of embedding Python in another program */

#include "Python.h"

void initxyzzy(void);

main(int argc, char **argv)
{
/* Pass argv[0] to the Python interpreter */
Py_SetProgramName(argv[0]);

/* Initialize the Python interpreter. Required. */
Py_Initialize();

/* Add a static module */
initxyzzy();

/* Define sys.argv. It is up to the application if you
want this; you can also let it undefined (since the Python
code is generally not a main program it has no business
touching sys.argv...) */
PySys_SetArgv(argc, argv);

/* Do some application specific code */
printf("Hello, brave new world\n\n");

/* Execute some Python statements (in module __main__) */
PyRun_SimpleString("import sys\n");
PyRun_SimpleString("print sys.builtin_module_names\n");
PyRun_SimpleString("print sys.modules.keys()\n");
PyRun_SimpleString("print sys.executable\n");
PyRun_SimpleString("print sys.argv\n");

/* Note that you can call any public function of the Python
interpreter here, e.g. call_object(). */

/* Some more application specific code */
printf("\nGoodbye, cruel world\n");

/* Exit, cleaning up the interpreter */
Py_Exit(0);
/*NOTREACHED*/
}

/* A static module */

/* 'self' is not used */
static PyObject *
xyzzy_foo(PyObject *self, PyObject* args)
{
return PyInt_FromLong(42L);
}

static PyMethodDef xyzzy_methods[] = {
{"foo", xyzzy_foo, METH_NOARGS,
"Return the meaning of everything."},
{NULL, NULL} /* sentinel */
};

void
initxyzzy(void)
{
PyImport_AddModule("xyzzy");
Py_InitModule("xyzzy", xyzzy_methods);
}
vallan 2003-08-24
  • 打赏
  • 举报
回复
up
PHP7 ,将会是PHP脚本语言的重大版本更新,同时将带来大幅的性能改进和新的特性,以及改进一些过时功能。该发布版本将会专注在性能加强,源自PHP版本树的phpng分支 . . 截止到目前为止,PHP官方已经发布了php7的RC5版本,预计在11月份左右会发布第一个正式版本!现在来说php7的重大特性肯定已经是定型了,不会再有什么变动了。后续一些版本的迭代主要也就是修修bug,优化之类的。下面就来说话我们一直期待的php7.0五大新特征吧。 层流罩 www.bjyongjiekang.com 如果你使用的是基于 composer 和 PSR-4 的框架,这种写法是否能成功的加载类文件?其实是可以的,composer 注册的自动加载方法是在类被调用的时候根据类的命名空间去查找位置,这种写法对其没有影响。 1. 运算符(NULL 合并运算符) 把这个放在第一个说是因为我觉得它很有用。用法: ? 1 $a = $_GET['a'] ?? 1; 它相当于: ? 1 2 例子(注意 … 的边长参数语法在 PHP 5.6 以上的版本才有): ? 1 2 3 4 5 6 7 8 例子可以看出现在函数(包括匿名函数)都可以指定返回值的类型。 这种声明的写法有些类似于 swift: ? 1 2 3 4 func sayHello(personName: String) -> String { let greeting = "Hello, " + personName + "!" return greeting } 这个特性可以帮助我们避免一些 PHP 的隐式类型转换带来的问题。在定义一个函数之前就想好预期的结果可以避免一些不必要的错误。 不过这里也有一个特点需要注意。PHP 7 增加了一个 declare 指令:strict_types,既使用严格模式。 使用返回值类型声明时,如果没有声明为严格模式,如果返回值不是预期的类型,PHP 还是会对其进行强制类型转换。但是如果是严格模式, 则会出发一个 TypeError 的 Fatal error。 强制模式: ? 1 2 3 4 5 6 中的函数的形参类型声明可以是标量了。在 PHP 5 只能是类名、接口、array 或者 callable (PHP 5.4,即可以是函数,包括匿名函数),现在也可以使用 string、int、float和 bool 了。 官方示例: ? 1 2 3 4 5 6 7 中 use 可以在一句话声明多个类或函数或 const 了: ? 1 2 3 4 python 一样的 from some import * 的方法)。 需要留意的问题是:如果你使用的是基于 composer 和 PSR-4 的框架,这种写法是否能成功的加载类文件?其实是可以的,composer 注册的自动加载方法是在类被调用的时候根据类的命名空间去查找位置,这种写法对其没有影响。 5. 其他的特性 其他的一些特性我就不一一介绍了,有兴趣可以查看官方文档:http://php.net/manual/en/migration70.new-features.php 简要说几个: PHP 5.3 开始有了匿名函数,现在又有了匿名类了; define 现在可以定义常量数组; 闭包( Closure)增加了一个 call 方法; 生成器(或者叫迭代器更合适)可以有一个最终返回值(return),也可以通过 yield from 的新语法进入一个另外一个生成器(生成器委托)。 生成器的两个新特性(return 和 yield from)可以组合。具体的表象大家可以自行测试。PHP 7 现在已经到 RC5 了,最终的版本应该会很快到来。 以上所述是关于php7.0新特征的全部内容,希望本文介绍大家喜欢。
超大位数计算程序清单 1. 第一个操作数文件 A1.txt 2. 第二个操作数文件 A2.txt 3. VC6老版本程序 bc.exe 4. VC2015新版本程序 BigCom.exe 5. 新版乘法批处理 cheng.bat 6. 新版除法批处理 chu.bat 7. 新版加法批处理 jia.bat 8. 新版减法批处理 jian.bat 9. 随机测试文件生成 CreateTestFiles.py 10随机测试文件生成图形版 DataCreater.exe 说明: 1. 测试数据的构造 可以使用清单10的软件在图形化条件下构建测试文件,但是数据是固定1位或者几位的简单重复;如果需要随机的测试数据,可以使用清单9python脚本。使用前可以到www.python.org下载python 2.7安装一下就可以在命令行运行,然后就能自动生成指定长度的测试文件A1和A2了。 2.测试的验证 由于数据量比较大,可以分别使用程序清单4的软件和其他5~8批处理计算结果比较,用于验证计算的结果是否一致。其清单5~8的批处理是调用最新版2015实现;要使用清单3老版本的程序,可以按照5~8构建对应测试批处理或者直接在命令行指定参数,例如进行乘法可以使用命令 bc m。需要注意, 测试的时候C1.txt会被覆盖,需要先重命名上一次的文件。 3.关于最大计算位数当前设定的是不超过2147483648位,即计算的结果也不能超过这个位数。 4.本次新版发布是支持Win7 x64以及以后的平台,如果需要,可以编译为Linux或者MacOS平台上进行运算。 5.文件C1.txt是使用新版程序结算乘法的结果,C2.txt是用旧版计算的结果,可以对比一下结果一致。但使用时间相差了几十秒!

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧