(ת)ʹÓÃC/C++À©Õ¹Python
ʹÓÃC/C++À©Õ¹Python
·Òë:
gashero
Èç¹ûÄã»áÓÃC£¬ÊµÏÖPythonǶÈëÄ£¿éºÜ¼òµ¥¡£ÀûÓÃÀ©Õ¹Ä£¿é¿É×öºÜ¶àPython²»·½±ã×öµÄÊÂÇ飬ËûÃÇ¿ÉÒÔÖ±½Óµ÷ÓÃC¿âºÍϵͳµ÷Óá£
ΪÁËÖ§³ÖÀ©Õ¹£¬Python API¶¨ÒåÁËһϵÁк¯Êý¡¢ºêºÍ±äÁ¿£¬ÌṩÁ˶ÔPythonÔËÐÐʱϵͳµÄ·ÃÎÊÖ§³Ö¡£PythonµÄC APIÓÉCÔ´Âë×é³É£¬²¢°üº¬ “Python.h” Í·Îļþ¡£
±àдÀ©Õ¹Ä£¿éÓëÄãµÄϵͳÏà¹Ø£¬ÏÂÃæ»áÏê½â¡£
Ŀ¼
1 Ò»¸ö¼òµ¥µÄÀý×Ó
2 ¹ØÓÚ´íÎóºÍÒì³£
3 »Øµ½Àý×Ó
4 Ä£¿é·½·¨±íºÍ³õʼ»¯º¯Êý
5 ±àÒëºÍÁ¬½Ó
6 ÔÚCÖе÷ÓÃPythonº¯Êý
7 ½âÎö´«¸øÀ©Õ¹Ä£¿éº¯ÊýµÄ²ÎÊý
8 ½âÎö´«¸øÀ©Õ¹Ä£¿éº¯ÊýµÄ¹Ø¼ü×Ö²ÎÊý
9 ¹¹ÔìÈÎÒâÖµ
10 ÒýÓüÆÊý
10.1 PythonÖеÄÒýÓüÆÊý
10.2 ÓµÓйæÔò
10.3 ΣÏյı¡±ù
10.4 NULLÖ¸Õë
11 ʹÓÃC++±àдÀ©Õ¹
12 Ìṩ¸øÆäËûÄ£¿éÒÔC API
1 Ò»¸ö¼òµ¥µÄÀý×Ó
ÏÂÃæµÄÀý×Ó´´½¨Ò»¸ö½Ð×ö “spam” µÄÀ©Õ¹Ä£¿é£¬µ÷ÓÃC¿âº¯Êý system() ¡£Õâ¸öº¯ÊýÊäÈëÒ»¸öNULL½áβµÄ×Ö·û´®²¢·µ»ØÕûÊý£¬¿É¹©Pythonµ÷Ó÷½Ê½ÈçÏÂ:
>>> import spam
>>> status=spam.system("ls -l")
Ò»¸öCÀ©Õ¹Ä£¿éµÄÎļþÃû¿ÉÒÔÖ±½ÓÊÇ Ä£¿éÃû.c »òÕßÊÇ Ä£¿éÃûmodule.c ¡£µÚÒ»ÐÐÓ¦¸Ãµ¼ÈëÍ·Îļþ:
#include <Python.h>
Õâ»áµ¼ÈëPython API¡£
Warning
ÒòΪPythonº¬ÓÐһЩԤ´¦Àí¶¨Ò壬ËùÒÔÄã±ØÐëÔÚËùÓзDZê׼ͷÎļþµ¼Èë֮ǰµ¼ÈëPython.h ¡£
Python.hÖÐËùÓÐÓû§¿É¼ûµÄ·ûºÅ¶¼ÓÐ Py »ò PY µÄǰ׺£¬³ý·Ç¶¨ÒåÔÚ±ê׼ͷÎļþÖС£ÎªÁË·½±ã “Python.h” Ò²°üº¬ÁËһЩ³£Óõıê׼ͷÎļþ£¬°üÀ¨<stdio.h>£¬<string.h>£¬<errno.h>£¬<stdlib.h>¡£Èç¹ûÄãµÄϵͳûÓкóÃæµÄÍ·Îļþ£¬Ôò»áÖ±½Ó¶¨Ò庯Êý malloc() ¡¢ free() ºÍ realloc() ¡£
ÏÂÃæÌí¼ÓC´úÂëµ½À©Õ¹Ä£¿é£¬µ±µ÷Óà “spam.system(string)” ʱ»á×ö³öÏìÓ¦:
static PyObject*
spam_system(PyObject* self, PyObject* args) {
const char* command;
int sts;
if (!PyArg_ParseTuple(args,"s",&command))
return NULL;
sts=system(command
Ïà¹ØÎĵµ£º
ϵͳ»·¾³£ºWindows 7
Èí¼þ»·¾³£ºVisual C++ 2008 SP1 +SQL Server 2005
±¾´ÎÄ¿µÄ£º±àдһ¸öº½¿Õ¹ÜÀíϵͳ
ÕâÊÇÊý¾Ý¿â¿Î³ÌÉè¼ÆµÄ³É¹û£¬ËäÈ»³É¼¨²»¼Ñ£¬µ«ÊÇ×÷ΪÎÒÓÃVC++ ÒÔÀ´±àдµÄ×î´ó³ÌÐò»¹ÊÇ´«µ½ÍøÉÏ£¬ÒÔ¹©²Î¿¼¡£ÓÃVC++ ×öÊý¾Ý¿âÉè¼Æ²¢²»ÈÝÒ×£¬µ«Ò²²»ÊDz»¿ÉÄÜ¡£ÒÔÏÂÊÇÎҵijÌÐò½çÃæ£¬ºóÃæ ......
Q:ʲôÊÇC·ç¸ñת»»£¿Ê²Ã´ÊÇstatic_cast, dynamic_cast ÒÔ¼° reinterpret_cast£¿Çø±ðÊÇʲô£¿ÎªÊ²Ã´Òª×¢Ò⣿
A:ת»»µÄº¬ÒåÊÇͨ¹ý¸Ä±äÒ»¸ö±äÁ¿µÄÀàÐÍΪ±ðµÄÀàÐÍ´Ó¶ø¸Ä±ä¸Ã±äÁ¿µÄ±íʾ·½Ê½¡£ÎªÁËÀàÐÍת»»Ò»¸ö¼òµ¥¶ÔÏóΪÁíÒ»¸ö¶ÔÏóÄã»áʹÓô«Í³µÄÀàÐÍת»»²Ù×÷·û¡£±ÈÈ磬ΪÁËת»»Ò»¸öÀàÐÍΪdouboleµÄ¸¡µãÊýµÄÖ¸Õëµ½ÕûÐÍ£º
......
ACE×ÔÊÊÅäͨÐÅ»·¾³£¨ADAPTIVE Communication Environment£©ÊÇ¿ÉÒÔ×ÔÓÉʹÓᢿª·ÅÔ´ÂëµÄÃæÏò¶ÔÏó£¨OO£©¿ò¼Ü£¨Framework£©£¬ÔÚÆäÖÐʵÏÖÁËÐí¶àÓÃÓÚ²¢·¢Í¨ÐÅÈí¼þµÄºËÐÄģʽ¡£ACEÌṩÁËÒ»×é·á¸»µÄ¿É¸´ÓÃC++ Wrapper Facade£¨°ü×°Íâ¹Û£©ºÍ¿ò¼Ü×é¼þ£¬¿É¿çÔ½¶àÖÖÆ½Ì¨Íê³ÉͨÓõÄͨÐÅÈí¼þÈÎÎñ£¬ÆäÖаüÀ¨£ºÊ¼þ¶à··ÖÀëºÍʼþ´¦À ......
CÊÇÃæÏò¹ý³ÌµÄ³ÌÐòÉè¼Æ£¬³ÌÐò=Êý¾Ý½á¹¹+Ëã·¨ [×îÔʼ£¬µ«±à¸ö³Ìȷʵ²»Ò×]
C++ÊÇÃæÏò¶ÔÏóµÄ³ÌÐòÉè¼Æ£¬³ÌÐò=¶à¸öÀà+ÏûÏ¢(Àà=Êý¾Ý½á+Ëã·¨)[±È½ÏÈÝÒ×ÉÏÊÖ]
C# ÊÇ´¿ÃæÏò¶ÔÏóµÄÓïÑÔ[¸ü¼Ó±È½ÏÈÝÒ×ÉÏÊÖ]
VC/VC++/VC# Ö»ÊÇÓÃÀ´¿ª·¢C/C++/C#Ó¦ÓóÌÐòµÄÈí¼þÖеÄÒ»ÖÖ¡£
......
ÔÚÕâÀïÌùÉÏ×î½ü×Ô¼ºÃ¦»îµÄÓÃturbo C±àдµÄ“´ò×ÖÓÎÏ·”µÄÔ´´úÂ룺
#include<graphics.h>
#include<conio.h>
#include<STDLIB.h>
#include<dos.h>
#define BK_COLOR BLACK
#define CHAR_COLOR WHITE
#define C_COLOR BLUE
#define num 10
#define SPEED 3000
#define Esc 27
# ......