[PythonCE] PythonCE on the ARM emulator

Luke Dunstan coder_infidel at hotmail.com
Mon Dec 19 16:13:13 CET 2005


I have tried the simple solution of disabling the version check and I was 
able to install and run the ctypes unittests on the ARM emulator.

............................................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 269 tests in 168.000s

OK

Thomas: I can give you the build of Python that I used, if you want.

Luke

----- Original Message ----- 
From: "Luke Dunstan" <coder_infidel at hotmail.com>
To: "Thomas Heller" <theller at python.net>
Cc: <pythonce at python.org>
Sent: Saturday, December 17, 2005 11:04 AM
Subject: Re: [PythonCE] PythonCE on the ARM emulator


>
> ----- Original Message ----- 
> From: "Thomas Heller" <theller at python.net>
> To: <pythonce at python.org>
> Sent: Friday, December 16, 2005 2:10 AM
> Subject: [PythonCE] PythonCE on the ARM emulator
>
>
>> Since Luke Dunstan has ported ctypes to windows CE, so I got interested
>> in this platform.  I don't have a Windows CE device, but I found the MS
>> Device Emulator (1.0, Community Preview):
>>
>> http://msdn.microsoft.com/mobility/windowsmobile/downloads/emulatorpreview/default.aspx
>>
>> To get started, I installed the emulator and tried to install the
>> current CE binaries on it.  The interactive interpreter works as far as
>> I can tell, except that I cannot import any extension modules in it.
>> When I try this, 'import _winreg' or 'import socket', Python is
>> terminated without any indication what was wrong.
>>
>> Has anyone with more experience tried to run Python on this 'platform'?
>>
>> Thanks,
>>
>> Thomas
>
> I just tried this and I get the same results. Running it in the debugger
> shows that the crash occurs in GetPythonImport() in Python/dynload_win.c.
> The code calls LoadLibrary() and then assumes that the returned HMODULE is
> actually the base address of the DLL in memory, which is true for other
> versions of Windows. The code tries to read the import table from the DLL
> file headers to determine whether it is linked to the correct version of
> Python (python23.dll in this case). I checked on my PDA and even though it
> tries to read from an invalid address it does not crash, so it doesn't 
> cause
> any problems. Apparently the emulator has better memory protection (or
> perhaps it is the slightly newer OS running on the emulator) and doesn't
> allow this.
>
> The ideal solution to this problem would be to find the real module 
> address
> from the HMODULE: does anyone know how to do this? The easy solution would
> be to use #ifndef MS_WINCE around this code because it is not critical and
> is merely a safeguard against loading Python extensions for the wrong
> version of Python.
>
> Luke
> _______________________________________________
> PythonCE mailing list
> PythonCE at python.org
> http://mail.python.org/mailman/listinfo/pythonce
> 


More information about the PythonCE mailing list