fputs in tp_print crashes under Win32

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Petr Gotthard

    #1

    fputs in tp_print crashes under Win32

    Hello,
    my C++ extension crashes under Win32 when the tp_print is called.

    It crashes with both Python 2.5.2 and 2.6. The crash occurs in
    system32\ntdll. dll, with exception code 0xc0000005.

    I found out that this works fine:

    int ulonghandle_pri nt(RtiULongHand leObject *v, FILE *fp, int flags)
    {
    fputc('c', stdout);
    return 0;
    }

    But this causes the error:

    int ulonghandle_pri nt(RtiULongHand leObject *v, FILE *fp, int flags)
    {
    fputc('c', fp); // <-- "fp" instead of "stdout"
    return 0;
    }

    It occurs under Windows (XP SP2) only. Under Linux everything works
    fine.


    Do you have any idea what could be wrong?

    Thanks,
    Petr
  • Gabriel Genellina

    #2
    Re: fputs in tp_print crashes under Win32

    En Wed, 12 Nov 2008 08:58:05 -0200, Petr Gotthard
    <petr.gotthard@ centrum.czescri bió:
    Hello,
    my C++ extension crashes under Win32 when the tp_print is called.
    >
    It crashes with both Python 2.5.2 and 2.6. The crash occurs in
    system32\ntdll. dll, with exception code 0xc0000005.
    >
    I found out that this works fine:
    >
    int ulonghandle_pri nt(RtiULongHand leObject *v, FILE *fp, int flags)
    {
    fputc('c', stdout);
    return 0;
    }
    >
    But this causes the error:
    >
    int ulonghandle_pri nt(RtiULongHand leObject *v, FILE *fp, int flags)
    {
    fputc('c', fp); // <-- "fp" instead of "stdout"
    return 0;
    }
    >
    It occurs under Windows (XP SP2) only. Under Linux everything works
    fine.
    Short answer: compile your extension with the *same* compiler used to
    compile Python itself: Visual Studio 2008 for 2.6, Visual Studio .NET 2003
    for 2.5
    For the long answer search http://wiki.python.org/moin/

    --
    Gabriel Genellina

    Comment

    Working...