[issue26006] 32 bits python ctypes creates 64 bits process from 32 bits executable

Artur Korobeynyk report at bugs.python.org
Mon Jan 4 07:06:49 EST 2016


New submission from Artur Korobeynyk:

Hi,

I have a 32 bits python on 64 bits Windows and 32 bits executable (compiled from native C).
When I do kernel32.CreateProcessA(path_to_exe, ...) python creates a process which is 64 bit (ctypes IsWow64Process returns true).
I expect it to be 32 as well. Am I wrong or that is a bug?

I attached testprog.exe but it requires testdll.dll
The sources of testprog.c:

#include <stdio.h>
#include <windows.h>

int main()
{

        Sleep(15000);
        printf("%d", testSum(5,10));
        return 0;
}

testdll.c

#include <stdio.h>

__declspec(dllexport) int __cdecl testSum(int a, int b)
{
        return(a+b);
}

compiled as:
/usr/bin/i686-pc-mingw32-gcc.exe -c testdll.c
/usr/bin/i686-pc-mingw32-gcc.exe --shared -o testdll.dll testdll.o
/usr/bin/i686-pc-mingw32-gcc.exe -o testprog testprog.c -L. -ltestdll

Process creation:
if kernel32.CreateProcessA(path_to_exe,
                                   None,
                                   None,
                                   None,
                                   None,
                                   creation_flags,
                                   None,
                                   None,
                                   byref(startupinfo),
                                   byref(process_information))

----------
components: ctypes
files: testprog.exe
messages: 257461
nosy: Artur Korobeynyk
priority: normal
severity: normal
status: open
title: 32 bits python ctypes creates 64 bits process from 32 bits executable
versions: Python 2.7
Added file: http://bugs.python.org/file41492/testprog.exe

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue26006>
_______________________________________


More information about the Python-bugs-list mailing list