Message124667
The documentation titled "Building C and C++ Extensions on Windows" at http://docs.python.org/py3k/extending/windows.html shows a Python 2.x way of handling static type object initializers, to whit:
>>
If your module creates a new type, you may have trouble with this line:
PyVarObject_HEAD_INIT(&PyType_Type, 0)
Static type object initializers in extension modules may cause compiles to fail with an error message like “initializer not a constant”. This shows up when building DLL under MSVC. Change it to:
PyVarObject_HEAD_INIT(NULL, 0)
and add the following to the module initialization function:
MyObject_Type.ob_type = &PyType_Type;
>>
That last line will not function in Python 3.x. However, PyType_Ready will fill in the ob_type field if it is empty, if I understand PyType_Ready correctly. Therefore, the last few lines of this documentation snippet can become:
>>
and add the following to the module initialization function:
if (PyType_Ready(&MyObject_Type) < 0)
return NULL;
>> |
|
Date |
User |
Action |
Args |
2010-12-26 17:27:44 | thorsten.behrens | set | recipients:
+ thorsten.behrens, docs@python |
2010-12-26 17:27:44 | thorsten.behrens | set | messageid: <1293384464.17.0.166913159604.issue10773@psf.upfronthosting.co.za> |
2010-12-26 17:27:42 | thorsten.behrens | link | issue10773 messages |
2010-12-26 17:27:42 | thorsten.behrens | create | |
|