Torsten Bronger wrote:
> Hallöchen!
> 
> Thomas Heller <[EMAIL PROTECTED]> writes:
> 
>> Torsten Bronger wrote:
>>
>>> [...]  However, is there a way to avoid this dummy "pp3" module
>>> and add the C++ functions directy to the main namespace in the
>>> Python script?
>> Yes.  You can import __builtin__, and add methods to it.  This is
>> a snippet from the bdist_wininst code, which embeds Python:
>>
>> http://svn.python.org/view/python/trunk/PC/bdist_wininst/install.c?rev=38414&view=markup
>>
>> PyMethodDef meth[] = {
>>      {"create_shortcut", CreateShortcut, METH_VARARGS, NULL},
>>      {"get_special_folder_path", GetSpecialFolderPath, METH_VARARGS, NULL},
>>      {"get_root_hkey", (PyCFunction)GetRootHKey, METH_NOARGS, NULL},
>>      {"file_created", FileCreated, METH_VARARGS, NULL},
>>      {"directory_created", DirectoryCreated, METH_VARARGS, NULL},
>>      {"message_box", PyMessageBox, METH_VARARGS, NULL},
>> };
>>
>>
>> ...
>>      mod = PyImport_ImportModule("__builtin__");
>>      if (mod) {
>>              int i;
>>              for (i = 0; i < DIM(meth); ++i) {
>>                      PyObject_SetAttrString(mod, meth[i].ml_name,
>>                                             PyCFunction_New(&meth[i], NULL));
>>              }
>>      }
>> ...
> 
> Thank you, it works well.  Just one more question: Why isn't "mod"
> Py_DECREFed again?

A mistake, as it seems.

Thomas

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to