我的问题是要使用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