Looking for C/C++ Compiler for WM6 - Windows Mobile Development and Hacking General

I recently got myself an ATT Tilt (Kaiser), which I plan on taking with me to a conference in Europe next month, and I'm not planning on taking a laptop so I can travel lightly afterwards. The phone currently has WM6 on there (I'm not going to play with flashing the ROM until after my trip).
To the point: I want a C/C++ compiler on my phone that I can use for potentially testing a few things over there (assuming the application I have in mind will work, but that's another story). I'm assuming that if I get the compiler working, it will have access to the standard C libs, including network stack.
I've tried PocketGCC, but I can't get it to work. The cabs from pocketgcc.sourceforge.net install fine, but the CMD Prompt won't open (I click on the icon and nothing happens).
Searching these boards, the only reference I've found was to http://www.mobilitysite.com/boards/business-development/135816-pocket-c.html#post1187340, but the links it points to for getting the various files no longer work.
Any suggestions or alternate links on how to get a working compiler on my smartphone?
As a backup, is CeGCC the best option for pre-compiling for the phone? Anyone know if it runs under 64-bit linux? Or if not, under win32 cygwin? Ideally, I'd love to have a cygwin-equivalent on the phone...but I guess that'll be deprecated with Android later on.
Thanks,
- David

Hi David,
I'm also looking for this and the best aproach was a DOS emulator (I think it is called Pocket DOS and there is another one that is free but don't remember the name) and Turbo C. I used it just to test very basic software that was just displayed in the DOS windows. But it was a really really little software (a couple of FORs and couple of variable incrementing), it was not fast to copile/run.
Hope this helps a little.

there is a cool project here, it's C#, not C++ but it might be of interest.
This one is supposed to be C++, but it is old and you may have problems with it. From what I recall, the command shell isn't compatible with wm6, but if you look around you may be able to find one to replace it that works.
Here is a command shell that's supposed to work with WM5/6
Good luck and let us know if you find anything else.
Also, the link to Mamaich's Version on that page you referenced works

Digicrat said:
I
is CeGCC the best option for pre-compiling for the phone? Anyone know if it runs under 64-bit linux?
Click to expand...
Click to collapse
mingw32ce (cegcc) is used to compile haret and roadmap (afaik vlc too).
It runs on amd64 very well. Have not tried it on my old DEC alpha.

Thanks for the quick responses.
edgar: PocketDOS looks interesting, but where can I find versions of Turbo C/C++ compatible with the pocketPC?
The program I'll be testing is actually a simple command-line C application, but it does use networking, UDP to be precise.
The link to Mamiach's link works on that page, but not the links on there for PocketConsole, PocketCMD, or the .bat files, though the bat files can be taken from the rar file itself.
I tried the PocketConsole and PocketCMD versions from the pocketgcc.sourceforge.net site again, and managed to get them (mostly) working after changing the reg key value.
I tried the PocketGCC cab file from gforge. It kind of works, but the test program won't compile. I still had to manually set the path for this, and for some reason it doesn't include gcc but calls the various other parts of it.
I'll try uninstalling the PocketGCC Cab and extracting Mamiach's version again and see if I have better luck with that later in the week and see how that goes.

Looks like I got it working for the most part.
Compilation is slow, but I don't want to waste space on the internal memory extracting all those .rar libs, unless I can get it installed/moved to the SD card later and adjust the paths accordingly (using spaces in file paths is always annoying).
I'm using Mamiach's version of GCC from the link above (extracted to /pgcc), plus PocketConsole and PocketCMD cabs from the pocketgcc.sourceforge.net distribution.
The only lingering (and annoying) issue is that it does not save the PATH setting after closing the cmd prompt.
Correction, I just noticed another more important issue. After switching programs, the CMD prompt seems to disappear. If I open another application, and then close that program, it will take me back to the CMD prompt. However, if I return to the "Today" screen, that prompt is still open but I can't get it back. It does not appear in that little task-switcher icon, nor in the detailed 'Task Manager'.
Any ideas?
Thanks
Update:
I just installed Dotfred's Task Manager. It looks like the problem is that the CMD prompt is being seen as a Process and not as an application. Now the question is can I change that...

Related

Adding programs in ROM

Does anybody know how to add software in ROM.
I succcesfully added small 1-file programs (and a couple of 2/3 file programs) using mkrom.
I often needed to modify the default.reg file to achieve this...
But how do I install more complex programs like Batterybar/Journalbar and Fonix Voicedial ?
I hope someons has the answer!
its not easy. u have to use the snap utility to find out what changes were made and manually add each entry into default.reg file. also if any files need to be somewhere other than windows directory u have to copy them to ram via the initobj.txt file.
alex
Thanks, that worked....
It took some time though!
kalex said:
Also if any files need to be somewhere other than windows directory u have to copy them to ram via the initobj.txt file.
Click to expand...
Click to collapse
Cool! People are figuring out how this works!
It has to be noted that putting files in any other place than Windows means you're making a RAM copy, which ofcourse uses RAM you could use for other things. So it would be better to figure out how to convince the software to run from Windows instead, which, sometimes after a little tinkering, has worked for us in all cases.
If need be, you can also try creating a link to the program in Windows, and copy that instead of the real file.
It has to be noted that putting files in any other place than Windows means you're making a RAM copy, which ofcourse uses RAM you could use for other things. So it would be better to figure out how to convince the software to run from Windows instead, which, sometimes after a little tinkering, has worked for us in all cases.
Click to expand...
Click to collapse
that's true. but some apps want to put something else where. for example Pocket Plus has 4 txt files which it modifies during use, so they have to be copied to RAM otherwise it wouldn't be able to modify it. some apps put dlls to \windows\appmgr, so i have to add that. so far i added Pocket Plus 1.2, Resco File explorer 2003, Soft Reset, and Pocket Gamer D9 dialer, as well as i localized it to US specs. the only thing i can't figure out yet is how to add T-mobile USA GPRS configuration to the auto setup.
XDA developer Peter Poelman can you share on how to do this?
thanks
alex
Laundry list of things to add to ROM
I have a laundry list of things to add into the ROM. I'm sure it all won't fit, but I'm very energized about hearing what you guys have been saying.
I have a legal copy of battery/journal bar, fonix voice suite + dial, pocket informant, and All Locations Traffic Counter. Additionally I am most certainly interested in getting T-Mobile US settings setup in the autoconfig.
I'm far from a UNIX guy, but I have Cygwin now installed and I'm working on getting Perl setup. One of the guys in my department helped me build SER1.1 on his Linux box.
I've had the T2Tech guys squeeze 128M inside the phone (64/64) so I'd like to add the driver for it into ROM so I can use it after a hard reset without having to dig out the installer.
If there's any assistance I can lend along the way please let me know.
MAXLW can you shoot me some basic instructions for Fonix and Battery/Journal bar?
Thanks all for the great tool!
[email protected]
US T-Mobile PPC-PE 128M SER1.1
rdm128,
Are u able to access 128mb of ram after u did the ser1.1? i heard it didn't work with the current drivers by ppctechs.
I doubt Fonix will work in the ROM as there are about 100 or so files that need to be copied as well as i'm not sure which files are being modified by the program and if they are being modified you will need to do a Ram copy before u can use it. all locations i guess u don't need either as t-mobile now offers unlimited GPRS. PI i'm not sure how its going to react to ROM install but u can try it and let me know if it works as i want to add it.
alex
128M w/ SER1.1
The 128 upgrade is split into 64M RAM and 64M "t2t storage card". I am able to access both of them quite easily with the driver installed.
The most impressive part, though it does make sense, is that I have only done soft resets and never a power cycle when installing the SER1.1 and therefore all files are still intact in the t2t storage card. Not bad for volatile RAM!
The only Fonix I'd really like in ROM is Voice Dial. I think I can get PI to work only because of the directory structure it uses. It places lots of files in the windows directory, but then puts all the 'writeable' files in the WebIS folder in my documents (at least as far as I can tell so far).
I'm just starting to play with snapview (since it came on SER1.1) to see what it will take to get this stuff crammed into ROM.
rdm128

.net 2005

http://lab.msdn.microsoft.com/vs2005/welcome/default.aspx
have anybody tried messing with the beta's to make pocketpc applications ?
Rudegar said:
http://lab.msdn.microsoft.com/vs2005/welcome/default.aspx
have anybody tried messing with the beta's to make pocketpc applications ?
Click to expand...
Click to collapse
I'm a MSDN subscriber and haven't received it yet. As soon as i get it will try to publish it somewhere in the net...
Cheers
well the link i gave will let you download the beta even if you dont subscriber to msdn
it does require a passport though
havent dl'd it myself though
infolink
Rudegar said:
well the link i gave will let you download the beta even if you dont subscriber to msdn
it does require a passport though
havent dl'd it myself though
Click to expand...
Click to collapse
I'm on my i-mate now & can't find any download links on that page. It is not even published at http://msdn.microsoft.com/downloads/recent.aspx download center.
Can you post a link to a pre-DL passport auth page?
http://lab.msdn.microsoft.com/express/visualc/
https://login.passport.net/ppsecure/uisecure.srf?id=42814
me
I'm using Visual Web Developer 2005 beta.
Completely new to web development.
HTML tags were completely beyond me as was data driving asp stuff.
BUT......
VWD is a dream to use.
I now have an asp site that lets XDA equiped engineers interface with our back office systems. The database integration is simple (tho there are a few bugs) and controls autosize for the target device.
Give it a go
well the only stuff relevant for me is c++ and maybe a bit of c# so i dont end up like some creepy dinosaur like those people who started coding Cobol back in the 70's and are still at it!
suppose one have to keep a bit up with the trend
VS 2005
Hi, there:
I'm using VS2005beta1, and I think its cool except a stupid bug on device application development. I attached some screen shots here. hope these information helpful.
Unlike evc+sdk developer tool set, vs2005 includes all stuff needed to build device applications, and it supports the latest emulator which running native ARM code on an emulated arm920 device, it's much faster than the legacy emulator, the legacy i486 emulator is still suported, check the attached platforms.jpg for supported platforms, notice wince 5.0 device is in the list. :lol:
now we can program in vb.net, c#, or c/c++. the attached screen shots show these different types of projects. convenient enough hur.
well, a big problem arised when develop in c/c++, i did not try vb.net and c# coz I don't like'em. when you create a new project, two platform configurations are created, one for device and the other for emulator. I mentioned the new emulator before, remember? its cpu is an arm920, check the screen shot. this emulator is used when deploy and debug for the project's emulator configuration. but unfortunately, under the emulator configuration, the compile and linker will generate x86 executable which cannot be run on the target emulator. what is worse is that you cannot change to use legacy i486 emulator, you can not even connect to the legacy emulator, the problem may related to the virtual machine network service driver installed by the emulator installation file. I'm still checking it. until this problem is solved can we finally debug on emulator, otherwise we had the only choice to debug on the device, btw I can debug on device with no problem, it can even attach to a running process on the device
at the predicatable future, vs2005 will certainly supercede evc+sdk to become the unified development platform.
why the screen shots appear in a reverse order of my attaching? I think it should be a list instead of a stack. :roll:
Well, I think I´ll have a look at it soon. Could you check if there are any project types for deployment? Means a "setup projekt" for devices?
yeah, I forgot this one, check the shot, it support device cab project.

Running PPC specific code on Smartphone device

Most of us are already aware that PPC and smartphone edition are similar enough to be mostly compatible in their apps across the platforms.
That is, with enough coaxing and the help of input simulators like SPHelper, I've managed to run almost any Pocket PC app on a smartphone device.
Well, until now.
I've officialy run into my first brick wall of sorts, and I'm hoping someone here can shed some light onto the situation.
Since the MS implementation of A2DP has quality issues, I'm trying to run MSI Blueplayer app ( found at http://cweb.msi.com.tw/program/support/download/dld/spt_dld_detail.php?UID=619&kind=8) on a smartphone.
Analyzing the cab, I extracted 4 .dll's that go in the \windows dir (msibtstk.dll, msibtapi.dll, CHS.dll and TW.dll), and two .exe program files that go in program files\msi\blueplayer (STLoader.exe, and MPOBCE.exe).
Now, normally its as simple as running the .exe, at least it always has been in the past.
However, every time I hit MPOBCE.exe, all I get is:
"Alert
Can't find MPOBCE or one of its components. Make sure the path and filename are correct and that all the required libraries are available."
Just to control this experiment, I copied the exact same files over to a PPC device and ran it to find that it DOES work.
Now, I've never encountered PPC specific code before- in fact, I didn't even know such a thing was possible. Has anyone see/heard of this sort of thing before?
Can someone help me take this apart and find out what makes it work on a PPC only? Perhaps a PPC-specific path (if there is such a thing)?
At this point, as much as I'd like to get this working, I'm just as much intellectually curious as to what would cause a program to only operate on a PPC installation.
Hello Dishe.
Your problem is simple: Certain DLLs that come built in Pocket PC version of windows mobile do not exist in the Smartphone version. An example is MFC DLLs.
What you need to do is get hold of 'dependency walker' which is a neat little app that MS incorporated in to VS 6 (though I understand it was written by an independent developer and should be available separately).
It will show you exactly which DLL files each exe is linked to. You then have to get a good copy (from a ROM dump) of the needed DLL and put it in windows directory.
Hope this helps.
That's a great idea. Thanks! I never heard of the dependency walker before, but it sounds like a perfect tool for this. I'll have to check it out on my office computer (I don't have VS 6 at home).
I wont be back in my office until wed., so if anyone had a bit of spare time, I'll attach the files here for someone to examine.
If anyone wants to look into it and tell me what dll's are required, I can get ahold of them from a healthy Pocket PC image.
Thanks!
This zip file has the two .exe's contained in the installation. I think only mpobce.exe is complaining about missing components, though.
Oops, apparently I should have checked first...
Dependency Walker is a free app. I downloaded it and tried it out.
It lists a bunch of .dll's, most of which I had on smartphone.
However, the two missing ones are:
mfcce300.dll
olece300.dll
Now, I'm not exactly sure what these do, so I need to look into it some more. Does anyone have any clue what these are for? If I copy them from a Pocket PC, will they operate on a smartphone?
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
levenum said:
Hi Dishe.
I guess I should have been more clear: Dependency Walker was written as freeware by an independent developer, but M$ liked it so much they decided to grab it for VS.
Any way, mfcce300.dll is MFC version for PPC (if you are not familiar with MFC, it's a collection of "ready code" that simplifies writing apps in c++)
It comes built in for PPCs but not for smartphones for some reason. If you have a good dump check that DLL with dep. walker as well, I am pretty sure it is linked to a few others.
olece300.dll - is a COM support dll. I won't even go there because I really hate COM (that's Component Object Model, not com port) and I am really not sure my self what the DLL does.
If you do get a good version of those two you should be able to get the app running.
Click to expand...
Click to collapse
Thanks for the help, I'm realizing there's a lot more to this I should have known before embarking on such a task. I've never had such a problem doing this before, I guess MFC isn't so popular!
Anyway, I need a good ROM dump, I haven't been able to aquire one. In the mean time I tried some files I found searching google... didn't expect it to work, but tried it anyway. Still complained of missing files- you're right, I'll bet MFC is calling more dll's as well that I need.
Perhaps there's hope...
You were right... I just needed more .dlls!
I found a whole series of .dlls required by mfcce300.dll that my smartphone was missing, so I put them all in the program directory and it opened!
Problem is, its not so stable... the files were pulled from a ce.net-4.1 set of files since I don't have access to a wm5 rom image.
One more thong I should have thought about earlier:
Some COM dlls, maybe even olece300.dll have a function called DllRegisterServer that writes them to registry as COM provider (under HKCR\CLSID).
Check to see if I am right using Dep. Walker and if so try to get regsvr32.exe or something similar for the PPC. (On a PC you use regsvr32 somedll.dll to register a COM server)
This may help with stability issue.

Need a c/c++ compiler !

hello guys,
i have been trying to figure out a way to do some c or c+ programming on the go, i have a desktop replacement laptop and i dont wanna have to carry it with me with all of my other books to school everyday. i am tryin to find a c++ compiler (hopefully gui)
i have tried
pocket gcc (installed but doesnt work)
pocketc (needs a translator to work)
evc++ (apparantly either i downloaded the desktop version or this is not what i was looking for)
i am just looking to do some c or c++ coding without a laptop at school.
thanks in advance.
joe
gcc works maybe you just set it up wrong
if you can do with c# then there is a c# compiler that runs on pocketpc
it dont have a gui though but any notepad'ish program can edit those files
otherwise there is this
http://www.pocketgear.com/software_detail.asp?id=5723
but it's not a fullblown compiler imho
never seen other real compilers or development envioments for pocketpc's
think the demand is TINY!
Yeah, Pocket GCC has worked successfully for me in the past.
However, I used Mamaich's version, and this was on a WM2003 device. You need to find a compatible Console output first for WM5 (you're using the Hermes right?). I can't remember if we found a good one for >= WM5.
There's various Basic type programming languages as well for native device development, and PocketC, but that's very very old.
V
How about C#....
Hi,
Ig you can bare using C# instead, I've just posted above about a free tool I created called "C# IDE Mobile" which allows writing/executing C# compact framework applications directly on the PPC.... But if you need C, then this won't help.
Harvey
Actually i have updated to wm6 and i am not sure if that is the reason cmd program from gcc wont work in it. I cant even find any sort of manual for it either.
and yes i do need a c compiler because from next semester i am startin to take unix courses and its mostly c programming. and if i get an idea in the middle of history class i might want to try it out on the phone instead of lappy.
so does anyone else have any ideas about a non translating program for c or c++
i was wondering if evc++ was only for PC and not PPC's cause i couldnt find a non xp version.
so i guess no compiler's huh?
evc++ is a IDE for windows which enable people to make pocketpc applications
not to run on the ppc
for the most parts the syntax of c# even java too is the same as
with c
so if all you need to do is make different algoritmes then you can use those
or the vi editor i linked too
if wm6 have the same issue with cmd as wm5 then this thread may help
http://forum.xda-developers.com/showthread.php?t=255114
does someone have a success with Tiny C compiler for ARM (tcc-arm) ?
IMHO, it would be quite handy for on-pocket development
I'm not sure if you can develop PocketPC-Applications with this, but I think its possible.
Try Visual Studio Express (C++-Edition) combined with the Windows Mobile SDK and the Windows Mobile Emulator Images.
All free, all available @ Microsoft Download Center. It's not tiny, but it's GUI and you can extend the pure C++-Development Environment with the ability to develop mobile applications and even to test them on Emulator.
Personally I'm developin mobile .NET Applications with Visual Studio Professional + Windows Mobile SDK and Windows Mobile Emulator. Works fine.
DennisMoore,
TCC is great due to its small size. And the reason why I'm interested in TCC is ability to cross-compile it to make it usable not only for ppc development, but for development on ppc. GCC is too huge application
try searching Bloodshed Dev-C++
I tried PocketDOS and TurboC++
Some time ago I was looking for this same thing and as I was just trying to do small DOS application (educational) then my best option was TurboC++ running in Pocket DOS. It can be changed to other pocket pc DOS emulator (there is a freeware one)/DOS C compiler.
pgcc should work
vijay555 said:
Yeah, Pocket GCC has worked successfully for me in the past.
However, I used Mamaich's version, and this was on a WM2003 device. You need to find a compatible Console output first for WM5 (you're using the Hermes right?). I can't remember if we found a good one for >= WM5.
There's various Basic type programming languages as well for native device development, and PocketC, but that's very very old.
V
Click to expand...
Click to collapse
I have this installed on my WM6 device and it works fine. In order to make the console work, you have to make a change in the registry.
see
http://forum.xda-developers.com/showthread.php?t=275019&highlight=console
Is this thread still active?
I use PGCC on my T-mobile Dash. I basically have to use batch files named without the following keys: W, E, R, S, D, F, X, C, V, which correspond to 1-9 on the dial pad. For example a file named run.bat would show up as 3un.bat so I would have to name it as such. I was attempting at one time to remap the keyboard to the HTC Excalibur like PocketDOS but, it was out of my experience level. I created a console pack from several different files that I modified. I had to jump through some hoops to discover this but, it's half the fun.
vijay555 said:
Yeah, Pocket GCC has worked successfully for me in the past.
However, I used Mamaich's version, and this was on a WM2003 device. You need to find a compatible Console output first for WM5 (you're using the Hermes right?). I can't remember if we found a good one for >= WM5.
There's various Basic type programming languages as well for native device development, and PocketC, but that's very very old.
V
Click to expand...
Click to collapse
Here's another console, tried it on WM6.1 and works like a charm.
http://forum.xda-developers.com/showpost.php?p=1854003&postcount=28
As for pocket GCC, i remember that it had some problems if file paths passed to it contained any spaces, so "/storage card" was a bit of a problem, and obviously, putting it in device's memory isn't even possible on many current pda's. The solution i came up with was renaming "/Storage card" to something wothout spaces (like "/SD").
You can do it by a simple registry edit the key:
Code:
HKLM/System/Storage Manager/Profiles/SDMemory/Folder
or
HKLM/System/Storage Manager/Profiles/SDMMC/Folder
(i don't remember which one it was, so you'll have to do some experimenting)
to anything you would like. After a soft reset you'll see the storage card mounted to a different folder.

I want to make an app :D

Hello.
Do you know a site or thread which has basic instructions about making a "hello world" app for PPC? Just to get me started.
What tools do you guys use? (doesn't matter if they are free or not)
How do you export/publish it as a .CAB?
Thanks.
PS. I searched and didn't find a thread like this and I don't want to use somebody else's thread.
Are you familiar with programming?
I use Visual Studio 2005 to create my apps. It has the ability to create a *.cab file as well
Visual Studio 2005 is not free.
You can find tons of info at the MSDN.
You can also use some library simplifying access to pocketPC by taking care of all necessary OS calls. Xflib looks good, especially if you want to code games, there are also some examples provided with lib download, and sources for most games hosted on their site are available. Might be a good place to start if you'd like to avoid learning winAPI and get right down to coding the actual app Another good thing is that it uses open source ceGCC compiler, so MS Visual C isn't needed. Also, you won't really need to make CABS to distribute programs coded this way, since they consist of one single exe file.
Go to www.xflib.net for downloads and install instructions.
And if you're a total beginner when it comes to programming, I'd try scripting out first. Have a look at mortscript (good because of it's multi-platform usage) or AutoIt (for windows desktop)
Thanks for the answears so far .
I'm not a programming noob, but not profesional. I've done some apps and games. I plan to start with easy things first as a coin toss app... it comes quite handy... or perhaps a handy stuff thing, inclusing the coin toss, unit converting (there are many), dices, chronometer, etc. All with stadistics and many options, like a random mode and a rigged mode ;D for dice and coin toss...
Then move on to something greater, who knows.
For something like that I suppose visual studio is best. I'll try both anyway. Any advise?
By the way is there an emulator like toolkit for J2me? Something a friend can download to run it without a programming software (or a phone).
Thanks again.
Edit: I believe I found an emulator, at least for XFlib (found there).
Device emulators
visual studio has its own device emulators you just have to download the proper SDK's like WM6 sdk or WM5 sdk to be more device specific, it's supports emulator debuging and device debuging but apps made with VS tend to slower and more memory hungry than apps implemented in C. But for me it's the easiest way to app development.
can you post the emulators link or better yet the whole thing itself here if its small enuff? im also working in xflib and would be much easier to use a standalone emulator rather than the one with vs2008. thanks

Categories

Resources