一、問題:
現在有一個C++類庫Mythma.dll,需要Python用戶也可以調用這些服務,所以需要用封裝其為Python擴展模塊Mythma.pyd。
現在有可執行程序PythonConsole.exe,依賴Mythma.dll模塊,希望PythonConsole.exe可以調用Python腳本,所以PythonConsole.exe中需要嵌入Python解析器。
此時,PythonConsole.exe既可以直接訪問Mythma.dll,又可以通過Python腳本訪問Mythma.dll。關系圖如下:
二、實現
1、假設Mythma.dll中的類為CHelloWorld



















2、用Boost.Python將C++模塊封裝,使得Python腳本可以調用C++的功能
如:














此時,可以用Python腳本訪問Mythma.dll中的類,axxscript.py文件中的內容為:





3、在C++程序里內嵌Python解析器,使得C++可以調用Python腳本
建立一個控制臺程序PythonConsole.exe,用來嵌入Python解析器

































執行調用Python腳本的過程如下:



















三、癥狀
通過執行PythonConsole.exe無法正常調用腳本,錯誤信息如下:
假如直接運行腳本,結果正確。不知各位朋友發現問題的原因沒有?有什么解決方法?
四、測試環境
VS2008
Python2.5
Boost 1.38
測試工程下載
五:更新
終于找到問題的原因,詳見這里。