锘??xml version="1.0" encoding="utf-8" standalone="yes"?>国产精品免费久久,久久精品亚洲AV久久久无码,精品九九久久国内精品http://www.shnenglu.com/bigsml/category/7907.htmlzh-cnSun, 26 Oct 2008 11:03:56 GMTSun, 26 Oct 2008 11:03:56 GMT60Python 鎿嶄綔榛戣帗(Blackberry)閫氫俊褰?/title><link>http://www.shnenglu.com/bigsml/archive/2008/10/03/63207.html</link><dc:creator>娉℃場鐗?/dc:creator><author>娉℃場鐗?/author><pubDate>Fri, 03 Oct 2008 14:18:00 GMT</pubDate><guid>http://www.shnenglu.com/bigsml/archive/2008/10/03/63207.html</guid><wfw:comment>http://www.shnenglu.com/bigsml/comments/63207.html</wfw:comment><comments>http://www.shnenglu.com/bigsml/archive/2008/10/03/63207.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.shnenglu.com/bigsml/comments/commentRss/63207.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/bigsml/services/trackbacks/63207.html</trackback:ping><description><![CDATA[涓轟簡緇欓粦鑾撳鍏Phone 鐨勯氫俊褰?contacts) , 鍙兘鍒╃敤榛戣帗鐨勬闈㈢鐞嗗櫒, 閫氳繃ipd 鏉ョ淮鎶? <br>浣嗘槸鍙戠幇 ABC Amber BlackBerry Converter 鍙兘杞崲鑰屾棤娉曚慨鏀? IPDManager 鍙兘緇存姢閾冨0鍜岄煶涔愬暐鐨?(  鍙兘鑷繁鍐欎簡涓皬紼嬪簭 <br><br>ipd 鐨勬牸寮忓彲浠ュ湪 <a >http://na.blackberry.com/eng/developers/resources/journals/jan_2006/ipd_file_format.jsp</a> 榪欓噷鎵懼埌, 鍚庨潰鏄唬鐮? 鍙槸鐢熸垚datablock 鍒楄〃, 榪橀渶瑕侀澶栨嫹璐? 鎿嶄綔鏃舵渶濂藉彧鍚屾閫氫俊褰? <br><br>涓嬮潰鏄唬鐮?<br> <div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><span style="COLOR: #008000">#</span><span style="COLOR: #008000">!/usr/local/bin/python2.5 </span><span style="COLOR: #008000"><br>#</span><span style="COLOR: #008000">-*- coding: gbk -*-</span><span style="COLOR: #008000"><br></span><span style="COLOR: #0000ff">from</span><span style="COLOR: #000000"> struct </span><span style="COLOR: #0000ff">import</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">*</span><span style="COLOR: #000000"> <br><br></span><span style="COLOR: #0000ff">class</span><span style="COLOR: #000000"> BBFile:    <br>    </span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">__init__</span><span style="COLOR: #000000">(self):<br>        </span><span style="COLOR: #0000ff">pass</span><span style="COLOR: #000000"><br>        <br>    </span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000"> _contactblock(self, name, phone, uid):<br>        s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #800000">''</span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> name </span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        name </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> name.encode(</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">utf-16be</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">)<br>        s </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> pack(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000"><HB</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, len(name)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0xa0</span><span style="COLOR: #000000">)<br>        s </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> pack(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000"><B</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0x01</span><span style="COLOR: #000000">) </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> name<br>        </span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> ff * 8 </span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        s </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> pack(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000"><HB</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0x54</span><span style="COLOR: #000000">)<br>        s </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> </span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">\xff</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> uid </span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        s </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> pack(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000"><HBI</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0x55</span><span style="COLOR: #000000">, uid)<br>        </span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> phone</span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        phone </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> phone.encode(</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">gbk</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">)<br>        s </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> pack(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000"><HB</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, len(phone)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">0x08</span><span style="COLOR: #000000">)<br>        s </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> phone </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> </span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">\x00</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000"><br>        </span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000"> s <br>    <br>    </span><span style="COLOR: #0000ff">def</span><span style="COLOR: #000000"> save(self, filename, us, dbID</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0, dbVer</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">0):<br>        hf </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> open(filename, </span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">w+b</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">)<br>        rs, uid </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">, </span><span style="COLOR: #000000">363797835</span><span style="COLOR: #000000"> </span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> 鍒濆鍊?/span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        </span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000"> u </span><span style="COLOR: #0000ff">in</span><span style="COLOR: #000000"> us:<br>            s </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> self._contactblock(u[0], u[</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">], uid)<br>            h </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> pack(</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000"><HIBHI</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, dbID, len(s)</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">7</span><span style="COLOR: #000000">, dbVer, rs, uid)<br>            hf.write(h </span><span style="COLOR: #000000">+</span><span style="COLOR: #000000"> s)<br>            uid </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">    </span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">            rs  </span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000"> </span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">    </span><span style="COLOR: #008000">#</span><span style="COLOR: #008000"> </span><span style="COLOR: #008000"><br></span><span style="COLOR: #000000">        hf.close()<br>        <br></span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000"> </span><span style="COLOR: #800080">__name__</span><span style="COLOR: #000000">==</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">__main__</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">:<br>    bb </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> BBFile()<br>    us </span><span style="COLOR: #000000">=</span><span style="COLOR: #000000"> [ (u</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">瀹濆疂1</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, u</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">13888888888</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">),(u</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">瀹濆疂2</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, u</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">13888888888</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">),(u</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">瀹濆疂3</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">, u</span><span style="COLOR: #800000">'</span><span style="COLOR: #800000">13888888888</span><span style="COLOR: #800000">'</span><span style="COLOR: #000000">),  ]    <br>    bb.save(</span><span style="COLOR: #800000">"</span><span style="COLOR: #800000">bb.ipd</span><span style="COLOR: #800000">"</span><span style="COLOR: #000000">, us, 0, 0)<br></span></div> 1. 淇濆瓨鎴愭枃浠跺氨鍙互鐩存帴榪愯浜?) <br>2. 濡傛灉瑕佺湡鐨勭敓鎴愬彲浠ュ鍏b 鐨勬枃浠剁殑璇? 瑕佷嬌鐢ㄩ珮綰?> 鍙悓姝ラ氳褰? 鐒跺悗灝嗚繖涓枃浠剁敓鎴愮殑鍐呭鏀懼湪瀵煎嚭鏂囦歡鐨勫ご鐨勫悗闈? 榪樻槸鏈夌偣楹葷儲.... 鏈夌┖鍋氫釜鍏ㄨ嚜鍔ㄧ殑 鍛靛懙   <br><br>鍥犱負鍙槸嫻嬭瘯, 鎵浠ュ緢澶氱‖緙栫爜浜?)    <br><br> <img src ="http://www.shnenglu.com/bigsml/aggbug/63207.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/bigsml/" target="_blank">娉℃場鐗?/a> 2008-10-03 22:18 <a href="http://www.shnenglu.com/bigsml/archive/2008/10/03/63207.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍦?C++ 涓嬌鐢?Python script http://www.shnenglu.com/bigsml/archive/2008/08/14/58859.html娉℃場鐗?/dc:creator>娉℃場鐗?/author>Thu, 14 Aug 2008 09:55:00 GMThttp://www.shnenglu.com/bigsml/archive/2008/08/14/58859.htmlhttp://www.shnenglu.com/bigsml/comments/58859.htmlhttp://www.shnenglu.com/bigsml/archive/2008/08/14/58859.html#Feedback3http://www.shnenglu.com/bigsml/comments/commentRss/58859.htmlhttp://www.shnenglu.com/bigsml/services/trackbacks/58859.html鎯寵鍦╟++ 涓祵鍏cript 浠g爜, 闄や簡鑷繁鍐欒剼鏈紩鎿庡, lua, python 閮藉彲浠ュ湪c++ 涓嬌鐢? 鍙﹀ MonoBind, AngelScript library 閮芥槸涓浜沜++ script library, 鍙互宓屽叆鍒癱++ 涓嬌鐢?.
浠婂ぉ鍦╟++ 涓瘯鐫宓屽叆 python 浠g爜 (紺轟緥浠g爜鍦?Python-2.5.2\Demo\embed\ 涓?

#include <Python.h>
int main(int argc, char *argv[])
{
  
// Py_NoSiteFlag = 1;
  
// Py_SetPythonHome("D:\\usr\\Python"); // PYTHONHOME

  Py_Initialize();
  PyRun_SimpleString(
"from time import time,ctime\n"
                     
"print 'Today is',ctime(time())\n");
  Py_Finalize();
  
return 0;
}

鍦ㄨ繍琛屾椂鍙兘浼氫駭鐢熺被浼?'import site' failed; use -v for traceback 鐨勯敊璇? 鍘熷洜鏄痯ython 鍦╥mport module 鐨勬椂鍊欑殑璺緞闂. 鏈?縐嶆柟娉曞彲浠ヨВ鍐?浠ュ墠閫氳繃璁劇疆鐜鍙橀噺 PYTHONPATH 濂藉儚鍦?.5 宸茬粡鏃犳晥浜?.
0. 鍙栨秷娉ㄩ噴 Py_NoSiteFlag = 1;
榪欎釜鍙槸鍙栨秷import site , 褰撶劧濡傛灉鍦ㄤ唬鐮佷腑瑕乮mport 鍟ョ殑璇? 榪樻槸浼氬嚭鐜伴敊璇殑.
a. 璁劇疆鐜鍙橀噺 PYTHONHOME = D:\usr\Python 
b. 鍦ㄨ皟鐢?Py_Initialize 涔嬪墠璋冪敤鍑芥暟
Py_SetPythonHome("D:\\usr\\Python");  // 鍙傛暟鏄痯ython 鐨勫畨瑁呯洰褰?

2. 鍏朵粬涓浜涙湁鐢ㄧ殑璧勬簮
Python/C API Reference Manual (API 鍙傝? ,  Extending and Embedding the Python Interpreter (鎵╁睍鍙婂祵鍏ython瑙i噴鍣? 涓昏璇存槑浜嗗浣曟墿灞昉ython, 緇橮ython 鍐欐墿灞? 鍏朵腑 5. Embedding Python in Another Application  涓绔犺榪頒簡鍦–++涓祵鍏?璋冪敤Python 浠g爜 )

浣跨敤C/C++鎵╁睍Python  瀵規枃 Extending and Embedding the Python Interpreter 浣滀簡綺劇畝, 寰堜笉閿欑殑涓綃囨枃绔? 浣嗘槸璺寵繃浜嗕竴浜涘熀紜 .

Building Hybrid Systems with Boost.Python 浠嬬粛浜嗕嬌鐢╞oost.python 鏂逛究python 鎻掍歡寮鍙? python緇戝畾c++紼嬪簭 鏄叾涓枃鐗堟湰.

Embedding Python in Multi-Threaded C/C++ Applications 璁蹭簡c++鍦ㄥ綰跨▼鐜濡備綍浣跨敤Python , 鏂?nbsp;C++澶氱嚎紼嬩腑璋冪敤python api鍑芥暟 鎻愪緵浜嗕竴涓綰跨▼鐨勫皝瑁?

SCXX - A Simple Python/C++ API
http://davidf.sjsoft.com/mirrors/mcmillan-inc/scxx.html

C++鎵╁睍鍜屽祵鍏ython搴旂敤 (浠嬬粛浜嗕竴浜汸ython/C API 鍑芥暟, 浠ュ強ext 渚嬪瓙, 涓鑸埇)
http://hi.baidu.com/yunsweet/blog/item/20b08aeebaa2b1282cf534c7.html


3. Python 澶氱嚎紼嬬殑浣跨敤

zz http://blog.csdn.net/liguangyi/archive/2007/06/20/1659697.aspx 
浠婂ぉ鐪嬩簡榪戜竴澶╁叧浜庡綰跨▼鐨勫簲鐢ㄤ腑錛屽浣曞畨鍏ㄨ皟鐢╬ython鏂歸潰鐨勮祫鏂欙紝寮濮嬬殑鏃跺欑湅鐨勭畝鐩村ご澶у鏂楋紝琚玴ython璇█鐨勫叏灞閿?Global Interpreter Lock)銆佺嚎紼嬬姸鎬?Thread State )絳夐兘鏈夌偣緇曟檿浜嗭紝鍚庢潵緇忚繃鍚勬柟闈㈡枃绔犲拰甯姪鏂囨。鐨勭浉浜掑弬鑰冿紝鍙戠幇瀵逛簬2.4/2.5鐗堟湰錛屾彁渚涗簡PyGILState_Ensure, PyGILState_Release錛屽搸錛岃繖涓嬪彲鏂逛究澶у彂浜嗐?/p>

涓銆侀鍏堝畾涔変竴涓皝瑁呯被錛屼富瑕佹槸淇濊瘉PyGILState_Ensure, PyGILState_Release閰嶅浣跨敤錛岃屼笖榪欎釜綾繪槸鍙互宓屽浣跨敤鐨勩?/p>

#include <python.h>

class PyThreadStateLock
{
public:
    PyThreadStateLock(void)
    {
        state = PyGILState_Ensure( );
    }

    ~PyThreadStateLock(void)
    {
         PyGILState_Release( state );
    }
private:
    PyGILState_STATE state;
};


浜屻佸湪涓葷嚎紼嬩腑錛岃繖鏍峰鐞?/p>

    // 鍒濆鍖?br>    Py_Initialize();
    // 鍒濆鍖栫嚎紼嬫敮鎸?br>    PyEval_InitThreads();
    // 鍚姩瀛愮嚎紼嬪墠鎵ц錛屼負浜嗛噴鏀綪yEval_InitThreads鑾峰緱鐨勫叏灞閿侊紝鍚﹀垯瀛愮嚎紼嬪彲鑳芥棤娉曡幏鍙栧埌鍏ㄥ眬閿併?br>    PyEval_ReleaseThread(PyThreadState_Get());
  
    // 鍏朵粬鐨勫鐞嗭紝濡傚惎鍔ㄥ瓙綰跨▼絳?br>    ......
      
    // 淇濊瘉瀛愮嚎紼嬭皟鐢ㄩ兘緇撴潫鍚?br>    PyGILState_Ensure();
    Py_Finalize();
    // 涔嬪悗涓嶈兘鍐嶈皟鐢ㄤ換浣昿ython鐨凙PI

涓夈佸湪涓葷嚎紼嬶紝鎴栬呭瓙綰跨▼涓紝璋冪敤python鏈韓鍑芥暟鐨勯兘閲囩敤濡備笅澶勭悊

    {
        class PyThreadStateLock PyThreadLock;
        // 璋冪敤python鐨凙PI鍑芥暟澶勭悊
        ......
    }

鍛靛懙錛岀湅榪欐牱鏄惁闈炲父綆鍗曚簡銆?/p>


鍙﹀榪樻湁涓や釜鍜屽叏灞閿佹湁鍏崇殑瀹忥紝Py_BEGIN_ALLOW_THREADS 鍜?Py_END_ALLOW_THREADS銆傝繖涓や釜瀹忔槸涓轟簡鍦ㄨ緝闀挎椂闂寸殑C鍑芥暟璋冪敤鍓嶏紝涓存椂閲婃斁鍏ㄥ眬閿侊紝瀹屾垚鍚庨噸鏂拌幏鍙栧叏灞閿侊紝浠ラ伩鍏嶉樆濉炲叾浠杙ython鐨勭嚎紼嬬戶緇繍琛屻傝繖涓や釜瀹忓彲浠ヨ繖鏍瘋皟鐢?/p>

    {
        class PyThreadStateLock PyThreadLock;
        // 璋冪敤python鐨凙PI鍑芥暟澶勭悊
        ......

        Py_BEGIN_ALLOW_THREADS
        // 璋冪敤闇瑕侀暱鏃墮棿鐨凜鍑芥暟
        ......
        Py_END_ALLOW_THREADS

        // 璋冪敤python鐨凙PI鍑芥暟澶勭悊
        ......
    }

4. 鍙兘鐨勯敊璇強瑙e喅
a. 鍦╲s 200x 涓?debug 妯″紡鍑虹幇閾炬帴闂
extmodule.obj : error LNK2019: unresolved external symbol __imp___Py_Dealloc referenced in function _PySwigObject_format
extmodule.obj : error LNK2019: unresolved external symbol __imp___Py_NegativeRefcount referenced in function _PySwigObject_format
extmodule.obj : error LNK2001: unresolved external symbol __imp___Py_RefTotal
extmodule.obj : error LNK2019: unresolved external symbol __imp___PyObject_DebugFree referenced in function _PySwigObject_dealloc
extmodule.obj : error LNK2019: unresolved external symbol __imp___PyObject_DebugMalloc referenced in function _PySwigObject_New
extmodule.obj : error LNK2019: unresolved external symbol __imp__Py_InitModule4TraceRefs referenced in function _init_extmodule

涓昏鏄洜涓?Py_DEBUG/Py_TRACE_REFS 寮曡搗, 淇敼 Python\include 涓嬬殑 pyconfig.h, object.h 涓や釜鏂囦歡灝辮浜?... 璇﹁ http://www.nabble.com/link-error-in-debug-mode-td3126668.html 



]]>
浣跨敤 python 鍐?COM http://www.shnenglu.com/bigsml/archive/2008/08/14/58851.html娉℃場鐗?/dc:creator>娉℃場鐗?/author>Thu, 14 Aug 2008 09:02:00 GMThttp://www.shnenglu.com/bigsml/archive/2008/08/14/58851.htmlhttp://www.shnenglu.com/bigsml/comments/58851.htmlhttp://www.shnenglu.com/bigsml/archive/2008/08/14/58851.html#Feedback0http://www.shnenglu.com/bigsml/comments/commentRss/58851.htmlhttp://www.shnenglu.com/bigsml/services/trackbacks/58851.html1. com 璋冪敤紺轟緥(浣跨敤Windows Media Player 鎾斁闊充箰)
from win32com.client import Dispatch
mp 
= Dispatch("WMPlayer.OCX")
tune 
= mp.newMedia("C:/WINDOWS/system32/oobe/images/title.wma")
mp.currentPlaylist.appendItem(tune)
mp.controls.play()

2. com server 鐨勭紪鍐?br>涓昏鍙互鍙傝?<<Python Programming on Win32 涔?Chapter 12 Advanced Python and COM http://oreilly.com/catalog/pythonwin32/chapter/ch12.html >>
紺轟緥(鍒嗗壊瀛楃涓?
- 浠g爜
class PythonUtilities:
    _public_methods_ 
= [ 'SplitString' ]
    _reg_progid_ 
= "PythonDemos.Utilities"
    
# NEVER copy the following ID 
    # Use "print pythoncom.CreateGuid()" to make a new one.
    _reg_clsid_ = "{41E24E95-D45A-11D2-852C-204C4F4F5020}"
    
    
def SplitString(self, val, item=None):
        
import string
        
if item != None: item = str(item)
        
return string.split(str(val), item)
 
# Add code so that when this script is run by
#
 Python.exe, it self-registers.
if __name__=='__main__':
    
print "Registering COM server"
    
import win32com.server.register
    win32com.server.register.UseCommandLine(PythonUtilities)

- 娉ㄥ唽/娉ㄩ攢Com

Command-Line Option

Description

 

The default is to register the COM objects.

--unregister

Unregisters the objects. This removes all references to the objects from the Windows registry.

--debug

Registers the COM servers in debug mode. We discuss debugging COM servers later in this chapter.

--quiet

Register (or unregister) the object quietly (i.e., don't report success).


- 浣跨敤COM
鍙互鍦╬ython 鍛戒護琛屼笅榪愯
>>> import win32com.client
>>> s = win32com.client.Dispatch("PythonDemos.Utilities")
>>> s.SplitString("a,b,c"",")
((u
'a', u'a,b,c'),)
>>>

3. python server com 鍘熺悊
鍏跺疄鍦ㄦ敞鍐岃〃涓煡鎵懼埌python com 鐨勫疄鐜板唴騫?
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}]
@
="PythonDemos.Utilities"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\Debugging]
@
="0"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\Implemented Categories]

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\Implemented Categories\{B3EF80D0-68E2-11D0-A689-00C04FD658FF}]

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\InprocServer32]
@
="pythoncom25.dll"
"ThreadingModel"="both"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\LocalServer32]
@
="D:\\usr\\Python\\pythonw.exe \"D:\\usr\\Python\\lib\\site-packages\\win32com\\server\\localserver.py\" {41E24E95-D45A-11D2-852C-204C4F4F5020}"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\ProgID]
@
="PythonDemos.Utilities"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\PythonCOM]
@
="PythonDemos.PythonUtilities"

[HKEY_CLASSES_ROOT\CLSID\{41E24E95-D45A-11D2-852C-204C4F4F5020}\PythonCOMPath]
@
="D:\\"

inproc server 鏄氳繃pythoncom25.dll 瀹炵幇
local server 閫氳繃localserver.py 瀹炵幇
com 瀵瑰簲鐨刾ython 婧愭枃浠朵俊鎭湪 PythonCOMPath & PythonCOM

4. 浣跨敤闂
鐢≒HP 鎴栬?c 璋冪敤com 鐨勬椂鍊?br>
<?php
$com = new COM("PythonDemos.Utilities");
$rs = $com->SplitString("a b c");
foreach($rs as $r)
    
echo $r."\n";
?>
浼氱鍒頒笅闈㈢殑涓浜涢敊璇?
pythoncom error: PythonCOM Server - The 'win32com.server.policy' module could not be loaded.
<type 'exceptions.ImportError'>: No module named server.policy pythoncom error: CPyFactory::CreateInstance failed to create instance. (80004005)


鍙互閫氳繃2縐嶆柟寮忚В鍐?
a. 璁劇疆鐜 PYTHONHOME = D:\usr\Python
鍙﹀鍦╟ ++ 浣跨敤python 鐨勬椂鍊? 濡傛灉import module 鍑虹幇閿欒 'import site' failed; use -v for traceback 鐨勮瘽, 涔熷彲浠ラ氳繃璁劇疆榪欎釜鍙橀噺瑙e喅.

b. 涓篶om 鐢熶駭exe, dll 鍙墽琛屾枃浠? setup.py 浠g爜濡備笅 :
from distutils.core import setup 
import py2exe 

import sys 
import shutil 

# Remove the build tree ALWAYS do that! 
shutil.rmtree("build", ignore_errors=True) 

# List of modules to exclude from the executable 
excludes = ["pywin""pywin.debugger""pywin.debugger.dbgcon""pywin.dialogs""pywin.dialogs.list"

# List of modules to include in the executable 
includes = ["win32com.server"

# ModuleFinder can't handle runtime changes to __path__, but win32com uses them 
try
    
# if this doesn't work, try import modulefinder 
    import py2exe.mf as modulefinder 
    
import win32com 
    
    
for p in win32com.__path__[1:]: 
        modulefinder.AddPackagePath(
"win32com", p) 
    
    
for extra in ["win32com.shell""win32com.server"]: #,"win32com.mapi" 
        __import__(extra) 
        m 
= sys.modules[extra] 
        
for p in m.__path__[1:]: 
            modulefinder.AddPackagePath(extra, p) 

except ImportError: 
    
# no build path setup, no worries. 
    pass 

# Set up py2exe with all the options 
setup( 
    options 
= {"py2exe": {"compressed"2
                          
"optimize"2
                          
#"bundle_files": 1, 
                          "dist_dir""COMDist"
                          
"excludes": excludes, 
                          
"includes": includes}}, 
    
# The lib directory contains everything except the executables and the python dll. 
    # Can include a subdirectory name. 
    zipfile = None, 
    com_server 
= ['PythonDemos'], # 鏂囦歡鍚?!
    ) 


ref:
http://oreilly.com/catalog/pythonwin32/chapter/ch12.html 
http://blog.donews.com/limodou/archive/2005/09/02/537571.aspx 


]]>
99蜜桃臀久久久欧美精品网站 | 久久人爽人人爽人人片AV | 久久精品国产99国产电影网| 久久免费精品视频| 99精品国产免费久久久久久下载 | 久久国产色AV免费观看| 99久久精品国产综合一区| 色综合久久夜色精品国产| 久久精品蜜芽亚洲国产AV| 四虎影视久久久免费观看| 日产精品久久久久久久性色| 久久亚洲中文字幕精品一区| 潮喷大喷水系列无码久久精品| 久久午夜综合久久| 99麻豆久久久国产精品免费| 久久这里只有精品首页| 久久国产精品偷99| 久久精品亚洲精品国产色婷| 久久久国产99久久国产一| 精品久久久无码中文字幕| 99久久精品日本一区二区免费| 国产精品99久久久精品无码| 久久久噜噜噜久久| 久久播电影网| 欧美精品丝袜久久久中文字幕| 69久久夜色精品国产69| 国产美女久久精品香蕉69| 国内精品综合久久久40p| 久久久久久久久久久精品尤物 | jizzjizz国产精品久久| 久久无码人妻一区二区三区午夜| 久久精品免费全国观看国产| 欧美激情精品久久久久久久| 国产精品无码久久四虎| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久青青草原精品国产| 日产精品久久久一区二区| 色欲综合久久中文字幕网| 一本久久知道综合久久| 久久久一本精品99久久精品66 | 久久五月精品中文字幕|