In C extension .pyd, sizeof INT64 = 4?

Allen Allen.Chenal at gmail.com
Tue Jun 12 07:39:43 EDT 2007


On 6 12 ,   6 03 , Allen <Allen.Che... at gmail.com> wrote:
> My C extension works wrong, and debug it, found that sizeof (INT64) =
> 4, not 8.
> I compile on Windows XP platform.
> Please tell me how to fix it to support INT64?
> Thanks.

I find it is strange. In an exe win32 console project, sizeof(INT64) =
8.

My code is just like this:

/* my.h header file */

#ifdef __cplusplus
extern "C" {
#endif

static PyObject* method(PyObject* self, PyObject *args);

#idef __cplusplus
}
#endif

/* my.cpp source file */
PyObject* method(PyObject* self, PyObject *args)
{
   INT64 nValue; /* LINE_HERE */
   INT32 nRet;
   nRet = DoSomeCOperations(nValue);
   return PyBuildValue("i", nRet);
}

If I changed INT64 nValue to be static INT64 nValue at LINE_HERE, it
is ok.
Why?





More information about the Python-list mailing list