PythonµÄC/C++À©Õ¹
Python
µÄ
C/C++
À©Õ¹
By phidoit@gmail.com
¿ÉÀ©Õ¹ÐÔÊÇ
Python
µÄÒ»´óÌØÉ«£¬Ò»·½Ã棬ÓÉÓÚ
Python
ÊǽâÊÍÖ´Ðеģ¬Õâµ¼ÖÂÔËÐÐËٶȻá±È±àÒëÐÍÓïÑÔÂý£¬Òò´Ë¿ÉÒÔͨ¹ýʹÓÃ
C/C++
ÖØдºËÐIJ¿·Ö´úÂëÒÔ½â¾öÐÔÄÜÉϵÄÆ¿¾±
(
³ÌÐò
90%
µÄʱ¼äÔÙÔËÐÐ
10%
µÄ´úÂë
)
£»ÁíÒ»·½Ã棬¿ÉÒÔͨ¹ýÀ©Õ¹£¬´ïµ½Ìí¼ÓÕûºÏһЩ¶îÍâµÄ¹¦ÄÜÒÔ¼°±£³ÖרÓÐÔ´´úÂëµÄÄ¿µÄ¡£ÔÚ±¾ÎĽÓÏÂÀ´µÄ²¿·ÖÖÐÎÒÃǽ«ÌÖÂÛÈçºÎ±àд
C/C++
À©Õ¹´úÂ룬²¢Ê¹ÓÃËüÃǵŦÄÜ¡£
ÎÒÃÇÒª½¨Á¢µÄÊÇÒ»¸ö¿ÉÒÔÔÚ
Python
ÄÚÔËÐеÄ
C/C++
Ä£¿é£¬Òò´ËÐèÒª½â¾öÈçºÎʹ
C
´úÂëºÍ
Python
´úÂëÄܹ»½øÐн»»¥ÒÔ¼°Êý¾Ý¹²Ïí¡£À©Õ¹ÊÇͨ¹ýΪ
C
´úÂë±àд°ü×°º¯Êý
(
ÀàËÆÊÊÅäÆ÷
)
ʵÏÖË«Ïò½»»¥ºÍÊý¾Ý¹²ÏíµÄ¡£
Ò»£®Ò»°ãµÄ°üװģʽ
ÿһ¸ö°ü×°º¯ÊýÖ÷Òª×öÈý¼þÊ£º
1.
°ÑÊäÈëµÄ
Python
¶ÔÏóת»»Îª
C/C++
¶ÔÏó£»
2.
µ÷ÓÃ
C/C++
º¯Êý£»
3.
ת»»
C/C++
º¯Êý´¦ÀíµÄÊä³ö½á¹ûΪ
Python
¶ÔÏ󣬲¢·µ»Ø£»
ÏÈÓÃÒ»¸ö¼òµ¥ÑùÀýÃèÊöÄ£¿é´óÌåµÄ¹ý³Ì£º
//wrap.cpp
//1.C´úÂë
#include "Python.h"
int add(int arg1, int arg2)
{
return arg1 + arg2;
}
//2.addµÄ°ü×°º¯Êý£º
static PyObject* wrap_add(PyObject *self, PyObject *args)
{
//°ÑÊäÈëµÄPython¶ÔÏóת»»ÎªC/C++ÄÜʶ±ðµÄÊý¾Ý
int arg1, arg2;
if(!PyArg_ParseTuple(args, "ii", &arg1, &arg2))
return NULL;
//µ÷ÓÃC/C++º¯Êý£¬µÃµ½½á¹û
int result = add(arg1,arg2);
//°ÑµÃµ½µÄ½á¹û°ü×°³ÉPython¶ÔÏ󣬲¢·µ»Ø
return (PyObject*)Py_BuildValue("i", result);
}
//3.Ϊģ¿éÌí¼ÓPyMethodDef·½·¨Êý×é
static PyMethodDef wrap_methods[] ={
{"add", wrap_add, METH_VARARGS},
{NULL, NULL}
};
//4.Ôö¼ÓÄ£¿é³õʼ»¯º¯ÊýInitModule
PyMODINIT_FUNC initwrap (void)
{
Py_InitModule("wrap ", wrap_methods);
}
°ÑÉÏÃæµÄ´úÂë±àÒ룬Éú³É
wrap.pyd
¡£
Visual Studio 2005
±àÒë·½·¨²Î¿¼£º
http://blog.csdn.net/solo_lxy/archive/2007/07/20/1700515.aspx
&
Ïà¹ØÎĵµ£º
TIOBEÊÀ½ç±à³ÌÓïÑÔÅÅÐаñÕ¹ÏÖÁ˱à³ÌÓïÑÔµÄÁ÷ÐÐÇ÷ÊÆ¡£Ã¿¸öÔ£¬¶¼ÓÐ×îеÄÊý¾Ý±»¸üС£Õâ·ÝÅÅÐаñµÄÊý¾ÝÈ¡ÑùÀ´Ô´ÓÚ»¥ÁªÍøÉϸ»ÓоÑéµÄ³ÌÐòÔ±¡¢ÉÌÒµÓ¦Óá¢ÖøÃûµÄËÑË÷ÒýÇ棨ÖîÈç¹È¸è¡¢ MSN ¡¢ÑÅ»¢£©µÄ¹Ø¼ü×ÖÅÅÃû¡¢ AlexaÉϵÄÅÅÃûµÈ¡£Çë×¢ÒâÕâ¸öÅÅÐаñÖ»ÊÇ·´Ó³ÁËij¸ö±à³ÌÓïÑÔµÄÈÈÃÅ³Ì¶È , Õâ²¢²»´ú±íËüÊÇÒ»¸ö×îºÃµÄ±à³ÌÓïÑÔ»òÊÇ¿ ......
1£¬ÔÚÍ·ÎļþÖж¨ÒåÁËÀ࣬ÔÚ´óÀ¨ºÅºóÃæÒ»¶¨ÒªÓзֺţ¡C++ÖаÑÀàÐͶ¨ÒåÒ²×÷Ϊһ¸öÓï¾ä¡£
class A{
A(){ cout << "hello world " << endl;}
};
2£¬ifºóÃæµÄ´óÀ¨ºÅÎÊÌâ
ÓÃÒ»¶ÎJAVAС³ÌÐò˵Ã÷Ò»ÏÂÏ£º
boolean value = true;
System.out.println("¿ªÊ¼²âÊÔÒ»ºÍ²âÊÔ¶þ");
if(value == true)
{
&nbs ......
VC++³ÌÐòÔ±Ó¦µ±ÈçºÎÔĶÁADOÎĵµ
¡¶ADO API²Î¿¼¡·ÓÃVBµÄÓï·¨ÃèÊöÁËADO APIµÄÄÚÈÝ¡£µ«ADO³ÌÐòԱȴʹÓÃ×Ų»Í¬µÄ±à³ÌÓïÑÔ£¬±ÈÈçVB,VC++£¬VJ++¡£¶Ô´Ë¡¶ADO for VC++µÄÓï·¨Ë÷Òý¡·ÌṩÁË·ûºÏVC++Óï·¨¹æ·¶µÄÏêϸÃèÊö£¬°üÀ¨¹¦ÄÜ¡¢²ÎÊý¡¢Òì³£´¦ÀíµÈµÈ¡£
ADO»ùÓÚÈô¸ÉµÄCOM½è¿ÚʵÏÖ£¬Òò´ËËüµÄʹÓöÔÓÚÒ»¸öÕý½øÐÐCOM±à³ÌµÄ³ÌÐòÔ±¶øÑÔ¸ü ......
½üÀ´ÓÖÓÐÈËÔÚȺÀïÎÊÈçºÎÓÃcÓïÑÔ±àÖÆdllÎļþ£¨¶¯Ì¬Á´½Ó¿â£©¡£
ÔÀ´Ã»ÓжÔÕâ¸öÎÊÌâÌ«ÔÚÒâ¹ý£¬Ò²Ã»Óг¢ÊÔ¹ýÈκνâ¾ö·½°¸£¬±Ï¾¹ÔÀ´ÎÒÊÇÓÃvbµÄ£¨ÏÖÔÚÓÃ.net£©£¬×ö¸ödllÖ»²»¹ýÊǵãѡһϽ¨Á¢activeX dll¹¤³ÌµÄͼ±ê¶øÒÑ¡£½ñÌìÔÚÍøÉÏÓëÅóÓÑÁÄÌ죬¿´ÁËËûÖ¸¸øÎҵļ¸¸ö¼¸¸öÎļþ£¬ÓÃMingW½«C³ÌÐò±àÒë³ÉdllÎļþµÄÀý×Ó£¬ÎÒ»ÐÈ»´óÎò£¬ÔÀ ......
#(¶Á×ö "C sharp")ÊÇ΢Èí¹«Ë¾ÔÚÈ¥ÄêÁùÔ·¢²¼µÄÒ»ÖÖеıà³ÌÓïÑÔ,²¢¶¨ÓÚÔÚ΢ÈíÖ°Òµ¿ª·¢ÕßÂÛ̳(PDC)ÉϵÇ̨ÁÁÏà.C#ÊÇ΢Èí¹«Ë¾Ñо¿Ô±Anders HejlsbergµÄ×îгɹû.C#¿´ÆðÀ´ÓëJavaÓÐמªÈ˵ÄÏàËÆ;Ëü°üÀ¨ÁËÖîÈçµ¥Ò»¼Ì³Ð,½çÃæ,ÓëJava¼¸ºõͬÑùµÄÓï·¨,ºÍ±àÒë³ÉÖмä´úÂëÔÙÔËÐеĹý³Ì.µ«ÊÇC#ÓëJavaÓÐ×ÅÃ÷ÏԵIJ»Í¬,Ëü½è¼øÁËDelphiµÄÒ»¸ ......