¡¾ÇóÖú¡¿C++ÈçºÎ²¶»ñPythonÖеÄÒì³£
C++Öе÷ÓÃpythonº¯Êý£¬·¢ÏÖpythonº¯ÊýµÄÒì³£ÔÚC++ÖÐÎÞ·¨²¶»ñ¡£
µ÷Óú¯ÊýÈçÏ£¬Çë´óÏÀ½â»ó
unsigned long CPythonHelper::Execute(const std::string& mml_cmd,
unsigned char flag,
bool is_quick_cfg,
cm_mit_chk_rst& mit_chk_rst,
bool need_check_license,
unsigned int scene,
std::string user_name,
unsigned int user_type)
{
mutex::scoped_lock lock(_py_helper_mutex, true);
try
{
CPyObjList pyObjLst, pyDisRules;
CPyObjArray PyArr(7);
CPyObject pyRetObj, pyCmdPara;
PyArr.SetItem(0, mml_cmd);
PyArr.SetItem(1, flag);
PyArr.SetItem(2, (int)is_quick_cfg);
PyArr.SetItem(3, user_name);
PyArr.SetItem(4, (int)user_type);
PyArr.SetItem(5, (int)need_check_license);
PyArr.SetItem(6, (int)scene);
m_pyParser.ExecFunction("Execute", PyArr, pyObjLst); --pythonÅ׳öµÄÒì³££¬C++²¶»ñ²»µ½£¬²»ÖªµôΪºÎ
if (!get_mit_chk_rst(pyObjLst, mit_chk_rst))
&nb
Ïà¹ØÎÊ´ð£º
¸÷λ´óÏÀ£º
ÓÐûÓÐÖªµÀÈçºÎÔÚCÓïÑÔÖÐʹÓóÖÐø¼¯³É¡£´Ó³õ²½µÄµ÷²éÀ´¿´£¬Ã²ËÆÊ¹ÓÃCruiseControlµÄÈ˺ܶ࣬µ«ÊǸÿªÔ´¹¤¾ß¶ÔCÓïÑÔµÄÖ§³ÖÃ²ËÆºÜÓÐÏÞ£¬±àÒëºÍ²âÊÔ½á¹û¿ÉÄÜÐèÒª×Ô¼º´¦Àí£¬Éú³ÉCruiseControlÄܹ»´¦ÀíµÄXMLÎ ......
´ó¼ÒºÃ£¬ÕâÊÇÒ»¸öÖ÷ÒªÃæÏòc/c++/mfcµÄȺ£¬×î½ü½øÐÐÁËÒ»´Î´óÇåÀí£¬»¶Ó¸÷λ¸ßÊÖ¼ÓÈ룬ºÃѧ°®ÎʵÄÐÂÊÖ£¬Ò²¿ÉÒÔÉêÇëµÄ£¬ÉêÇë¸ñʽ Ö°Òµ£¨c/c++/mfc ÈÎѡһ»òÕ߶ࣩ ¹¤×÷ÄêÏÞ£¨Ñ§ÉúÖ±½Óд´ó¼¸£©¾ÍÐÐÁË£¬ÈëȺµÄÒªÇó¾ÍÊÇÒª» ......
pythonµÄPIL¿â×Ô´øµÄ·½·¨Ö»ÄܽøÐоØÐεÄÇиÈç¹ûÎÒÓÐÁËÒ»¸ö¶à±ßÐθ÷¸ö¶¥µãµÄ×ø±ê£¬ÈçºÎ¶ÔÏÖÓеÄͼƬ°´ÕÕÕâ¸ö¶à±ßÐνøÐÐÇиîÄØ£¿
²»Ò»¶¨ÒªÓÃPIL¿â£¬ÈκÎÄÜʵÏÖÕâ¸ö¹¦Äܵķ½·¨¶¼ÐС£
ͼƬÇиîµÄjs²»ÊǺܶàÂð£¿
......
±ÈÈçµ±³ÌÐò³öÏֶδíÎóʱ£¬ÈçºÎÈóÌÐòÖØÐ¿ªÊ¼£¬¶ø²»ÊDZ»ÏµÍ³ÖÕÖ¹¡£
ÄãÏëÒì³£´¦ÀíÂð£¿
C²»Ö§³Ö¡£
ÔÙ˵£¬Òì³£ºÍ´íÎóÊDz»Í¬µÄ¡£
¶Î´íÎó¾ÍÓ¦¸ÃÖÕÖ¹¡£
assert()
abort()
exit()
µ±³ÌÐò³öÏֶδíÎóʱ,ÎÞ· ......
C/C++ code:
#include<stdio.h>
#define MAXN 26
char stack[MAXN];
int top=0;
int push(x);
int pop(p_y);
void main()
{
char mpush=3;
char *mpop;
*mpop=0;
// printf("%d\n ......