#python指令碼,存為pytest.py
def add(a,b):
print "in python function add"
print "a = " + str(a)
print "b = " + str(b)
print "ret = " + str(a+b)
return a + b
// c**調,用上面的add函式
#include
#include
#include "c:/python26/include/python.h"
#pragma comment(lib, "c:\\python26\\libs\\python26.lib")
int main(int argc, char** argv)
// 載入名為pytest的指令碼(注意:不是pytest.py)
pname = pystring_fromstring("pytest");
pmodule = pyimport_import(pname);
if ( !pmodule )
pdict = pymodule_getdict(pmodule);
if ( !pdict )
// 找出函式名為add的函式
pfunc = pydict_getitemstring(pdict, "add");
if ( !pfunc || !pycallable_check(pfunc) )
// 引數進棧
pargs = pytuple_new(2);
// pyobject* py_buildvalue(char *format, ...)
// 把c++的變數轉換成乙個python物件。當需要從
// c++傳遞變數到python時,就會使用這個函式。此函式
// 有點類似c的printf,但格式不同。常用的格式有
// s 表示字串,
// i 表示整型變數,
// f 表示浮點數,
// o 表示乙個python物件。
pytuple_setitem(pargs, 0, py_buildvalue("l",3));
pytuple_setitem(pargs, 1, py_buildvalue("l",4));
// 呼叫python函式
pretval = pyobject_callobject(pfunc, pargs);
printf("function return value : %ld\r\n", pyint_aslong(pretval));
py_decref(pname);
py_decref(pargs);
py_decref(pmodule);
py_decref(pretval);
// 關閉python
py_finalize();
return 0;
}
C呼叫Python指令碼檔案裡的函式
電梯直達 1 只看該作者 倒序瀏覽 python指令碼,存為pytest.py def add a,b print in python function add print a str a print b str b print ret str a b return a b c 調,用上面的add函...
C 呼叫並執行SQL指令碼檔案
讓c 程式直接執行sql指令碼檔案,類似ssms直接開啟sql檔案並執行一樣,搜尋了一下結果還真有,不過需要借用mssql的幾個類庫及命名空間 microsoft.sqlserver.connectioninfo.dll microsoft.sqlserver.smo.dll microsoft.s...
Python編寫簡易指令碼檔案
選用了nodepad進行編寫 最後儲存成 x.py格式即可,同理記事本啊什麼的也可以,對接nodepad editplus之類 usr bin env python3 age int input age of the dog print if age 0 print this can hardly ...