我的問題是要使用Python的例子,但它似乎可能是一個普遍的問題。乾淨地實現運行時動態鏈接
我一直在使用加載時動態鏈接,但由於各種原因(我們建議在下面的鏈接),我想動態加載Python庫:
HINSTANCE hModPython = LoadLibrary(_T("Python27.dll"));
我能負載Py_Initialize
和從DLL等功能,但它是一個髒過程:
int (*pPy_Initialize)(void);
pPy_Initialize = (int (*)(void))GetProcAddress(hModPython, "Py_Initialize");
pPy_Initialize();
在this conversation它表示:
宏可以使這些指針對任何調用Python的C API中的例程的C代碼透明。
我的問題是如何做這個作者建議什麼時候我要導入各種各樣的函數,並帶有各種簽名。使用已經在Python.h中的簽名(包括那個頭文件)會很好。
我同意你的最後一段,宏(或typedefs)似乎是要走的路,儘管你之前提出的建議可能有助於此代碼的另一次迭代。對於其他讀者:您可能會發現本文中來自MSDN的模式有用:[動態鏈接](http://msdn.microsoft.com/zh-cn/library/ms810279.aspx) – davidvandebunte