This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author Artur Korobeynyk
Recipients Artur Korobeynyk
Date 2016-01-04.12:06:48
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1451909209.14.0.184769502954.issue26006@psf.upfronthosting.co.za>
In-reply-to
Content
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))
History
Date User Action Args
2016-01-04 12:06:49Artur Korobeynyksetrecipients: + Artur Korobeynyk
2016-01-04 12:06:49Artur Korobeynyksetmessageid: <1451909209.14.0.184769502954.issue26006@psf.upfronthosting.co.za>
2016-01-04 12:06:48Artur Korobeynyklinkissue26006 messages
2016-01-04 12:06:48Artur Korobeynykcreate