[New-bugs-announce] [issue34603] ctypes On Windows: error calling C function that returns a struc containing 3 bools

MatteoL report at bugs.python.org
Fri Sep 7 07:15:17 EDT 2018


New submission from MatteoL <mlovato at gmail.com>:

Marshalling the following C structure with ctypes in Windows (compiled with VS2015) is not working correctly.
As you can see, in the simple demo program I attached, the integer I pass as a parameter gets somehow corrupted. I use cdecl calling convention.

The corruption happens only if the returned structure contains 3 booleans, if I add a fourth bool to the structure than I get expected results.

In linux (compiling with Gcc) the same code (with 3 booleans) work as expected.


typedef uint64_t CustomHandle;

typedef struct
{
	bool first;
	bool second;
	bool third;
} Flags;

CustomHandle GetHandle();
Flags GetFlags(CustomHandle handle);


As already mention I attached all the files to reproduce the issue with the related cmake file

----------
components: ctypes
files: MarshallingTest.zip
messages: 324732
nosy: mattneri
priority: normal
severity: normal
status: open
title: ctypes On Windows: error calling C function that returns a struc containing 3 bools
type: behavior
versions: Python 3.4, Python 3.5, Python 3.6, Python 3.7
Added file: https://bugs.python.org/file47789/MarshallingTest.zip

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue34603>
_______________________________________


More information about the New-bugs-announce mailing list