dz333n / wcecl Goto Github PK
View Code? Open in Web Editor NEWRun Windows CE applications on desktop Windows
License: MIT License
Run Windows CE applications on desktop Windows
License: MIT License
It'd be better to resort exports.def. Example:
...
; winuser_wcecl.cpp
LoadIconW=LoadIconW_WCECL @510
LoadBitmapW=LoadBitmapW_WCECL @511
; imm_wcecl.cpp
ImmThing @1
ImmUse @42
; strsafe_wcecl.cpp
StringCchCopyW=StringCchCopyW_WCECL @1689
StringCchPrintfExW=StringCchPrintfExW_WCECL @1701
StringCchPrintfW=StringCchPrintfW_WCECL @1699
StringCbPrintfW=StringCbPrintfW_WCECL @1700
StringCchCopyExW=StringCchCopyExW_WCECL @1691
StringCchVPrintfW=StringCchVPrintfW_WCECL @1697
...
In Win32 applications, the entrypoint present in PE headers and invoked on program start does not have any parameters. Functions like WinMain
are not the real entrypoint of the program - instead, a function (usually provided by the compiler) like WinMainCRTStartup
is used to get things like command line arguments, initialise the C/C++ runtime, and to call the "higher-level entrypoint".
Judging by function names, programs compiled for WinCE seem to have a CRT startup routines, but they expect the arguments from the operating system. Because no arguments are provided by the OS, the program, for example, has no access to the command line arguments.
Compare stack traces with debug symbols between a Win32 application, and a WinCE one:
Win32:
WinCE (not showing anything above that in that stacktrace, as it seems that at least for solitaire.exe
, CRT startup function is the only entrypoint - the main program loop is there):
Using a dirty hack that violates many best practices to call the entrypoint from COREDLL!DllMain
, implementing some functions, clicking through a few stub messages, and making some other minor tweaks, it is possible to run WinCE cmd.exe
, albeit it doesn't really work that great.
Currently it shows only this window and nothing about useful information
(related to #4)
idk how to download
the mega.nz Link to download windows ce Solitare on this Wiki Page does not work it just says The Folder Link you are trying to access is no longer available
The provided AssertXXX
macros seem to be written in a non-standard way - for some reason, they trigger when asserted expressions are true
, instead of triggering on false
. This is quite confusing, and caused me some debugging, that could be avoided if:
Actual problems:
nCmdShow
is wrong and causes ShowWindow
to show window wrong or not show at all.Fixed:
Random
is broken and generates wrong cards - fixed in #11 2533081CreateWindowEx
generating exception in user32.dll - fixed in 027d266 171fa5bRegisterClass
fails - fixed in e3ae04eLoadBitmap
fails - fixed in e3ae04eLoadString
fails - fixed in e3ae04eLoadCursorW
. dab4500 - workaround. Fixed in e3ae04eInvalidateRect
. Fixed in 3f4695aActual problems
__stdcall is wrong calling convetion for Windows CE API. All functions should be __cdecl.
This may be the reason of #1
Currently we have stubs here
Expression
CreateProcessW( VSJitDebugger, CmdLine8uf, O, O, O, oxoooooæo, O, O,
&Startuplnfo, &lnfo) O
is TRUE.
Error 2 - The system cannot find the file specified.
Note: this dialog shows every time when expression is true, however
there may be correct cases when it's really expected to be true.
Steps to reproduce the behavior:
I thought it was gonna work
OS: [Windows 10]
Browser [Chrome]
Version [19045.4170]
Most of CE apps are ARM.
Feature Description (optional)
Program which loads all module imports and checks if there are such in WCECL.
Also it would be great if this program could make a list of required functions in wcecl .def style
GetExitCodeProcess=GetExitCodeProcess_WCECL @519
CreateDirectoryW=CreateDirectoryW_WCECL @160
GetDiskFreeSpaceExW=GetDiskFreeSpaceExW_WCECL @184
FileTimeToSystemTime=FileTimeToSystemTime_WCECL @20
SystemTimeToFileTime=SystemTimeToFileTime_WCECL @21
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.