WM6 Emulator - runs out of storage space when deploying project - Windows Mobile Development and Hacking General

Hi,
I'm trying to develop a WM6 mobile application (for personal use) in VS2005
using C#. The application uses the microsoft.sqlserver.smo assembly in order
to connect to an instance of SQL Server and be able to manage it. The
problem is when I build and deploy the application, it copies a whole lot
of other assemblies to the WM6 emulator which causes it to run out of
storage space, causing the build and deployment to fail. Is there any way
around this? There's seems to be no way to increase the storage size of the
emulator. Is there a compact version of the SMO assembly? I understand that
the standard SMO version is for the desktop and therefore drags a whole lot
of other ones with it which are not necessary or usable on a WM6 device.
Please help me. I'm stuck with my development due to this.
Thanks.

Related

New Programmer (Maybe)

Hi to all,
i'm new in xda\xda2 world...and i would like to develop under it? What i need for developing? What cpu type\model it have?
Well.. The About and Device Information screens in the System Settings menu should take care of your questions..
But if you're lazy, the XDA typically runs PocketPC 2002 on a StrongArm CPU, and the XDA II PocketPC 2003 (Windows Mobile Edition) on an Intel XScale (which is backwards compatible with ARM).
If you simply visit www.pocketpc.com and click on developers you'll end up at http://www.microsoft.com/windowsmobile/information/devprograms/default.mspx
Where you can even order a free DVD-Rom with the PocketPC SDKs, compilers etc (they will charge shipping and handling, at a freakishly high rate). You can also download that stuff.
However, you will need Visual Studio .NET as well, which is not a free download (in fact, even the academic version will set you back more than EUR 100).
I've not ventured into it myself yet, so it's quite possible you can actually do without Visual Studio (as the compilers themselves can be downloaded). Also, there's a version of gcc for pocketpc.
Any one developing for pocketpc who wants to chip in here? (I'd like to toy around with programming a bit on PPC - regretably it doesn't have a built-in scripting language like epoc32 has/had).
You only need Visual Studio .NET if you want to create .NET applications. If you are just programming in C++, I'd highly recommend downloading Embedded Visual Studios 3 and 4 and get the appropriate SDKs (all of which are free). At least, that's what I use.
What about Java Midlets?
I am thinking on writing a couple of apps for PPC, but going into VS.NET might be too deep for me. I also want to extend those later for palm and maybe desktop. No hardware specific stuff so I thought I might get away with Java which I am pretty good at.
Does anyone have anything to say - pros / cons? How midlets are on O2 in general - fast / slow, too much memory or processing power? Please share.
Why don't you get down to c++? Fast, small, general support...
--------------
У нас сегодня день вежливости, так что вы просто идите за мной и никуда не сворачивайте!
Some day
Good old C++. Too many years with Java - softened my mind... Undoubtedly C++ is the best way to go in terms of speed and size. Lets see what people say. :idea:
I've been programming in Visual .NET (VB.NET more specifically), but even after installing the SDK I have no idea where to start? When creating a project, I don't see any new project type for Pocket PC applications ? In fact, what else do I need to do if I want to program in VB.NET ?
i read that visualstudio .net 2005 will be able to make pocketpc applications in all languages not just .net applications like 2003
not sure about how you get started with vb.net since vb is very evil and nasty
but with c++ mfc and c# .net you start out with a form and there you can place components on it and program what functions they have
but if you want to make games and stuff which dont use normal windows stuff then you are better off programming them in c++ directly for the arm platform
I use Embedded VC++ and MFC as it's far tighter/smaller than .net. Purists can go completely Win32(ce) native and avoid MFC altogether but MFC does make development a good deal easier without the bloat of .net (not to mention how slow it is..).
Same thing for me. C++ with EVC tools. No mfc for me (a little purist and feel it gives a clearer code )
Best way to have samller and optimize applications
I've been programming in Visual .NET (VB.NET more specifically), but even after installing the SDK I have no idea where to start? When creating a project, I don't see any new project type for Pocket PC applications ? In fact, what else do I need to do if I want to program in VB.NET ?
Click to expand...
Click to collapse
If you have VS.NET 2003 you don't even need the SDK.
just File-> New->Project
on the left column "Project Types" choose your language and on the right click the "Smart Device Application"
Basically is like any windows application but less possibilities and if you want to create any serious application you'll have to do a lot of optimization and native coding.
Good luck
Books?
I'm also interested in programming with Embedded VC++...and was wondering if anyone know of books out there I can pick up that will help my learning process a little quicker. Its been a long time since i coded in C++ and need to refresh.
The part I'm really need help is the basic parts ...like how to get things started.
I'm confident that once I get started i'll start to remember my C++ coding.
I'm downloading the Embedded VC++ from Microsoft as I type this post ...hope it wont be too hard to understand how to create a simple "hello world" program for PPC devices
Also if anyone knows a good web sites with code samples ...please PM or post the URL, I'v seen some but not all that great
Thank You
Sometimes less is more.......
zendrui said:
Same thing for me. C++ with EVC tools. No mfc for me (a little purist and feel it gives a clearer code )
Best way to have samller and optimize applications
Click to expand...
Click to collapse
As mentioned above, if you drop ATL, MFC .NET and all the implied baggage they have to bring with them to work, you are left with the old WIN32 programming model. This is now considered very 'old hat', but if all your program uses are API's in WIN32's kernel.dll, user.dll, gdi.dll etc...... i.e. the very primative windows stuff, then it is possible to write an application that will run on any version of Windows Mobile. This application will be pretty simple, but the compiled .EXE file targetted at an ARM4xx model will run on almost any Pocket PC, without any other files. (i.e. The single APP.EXE file will run on any upwardly compatable system, no fancy implementation project to create or run, just copy the release '.exe' file to the target machine, and it will run!). These days 99%+ mobile PDA's run ARM class processors. The manufacturers call them by their own processor IDs but under the hood they are all the same.
To create an app that will run on the Mobile 5/6 platform without looking like previous Mobile 2002/3/SE apps, limit the Main menu items to two. This will make sure they appear either side of the input icon, as menu items. More than two and the Mobile 5/6 menu items appear as 2002/3/SE apps in the old control bar style.
wfberg said:
(I'd like to toy around with programming a bit on PPC - regretably it doesn't have a built-in scripting language like epoc32 has/had).
Click to expand...
Click to collapse
As far as scripting goes... I'm a big fan of Mortscript. It's so simple... I guess I'm a little purist myself
Basic 4PPC
Basic for Pocket PC, has anyone tried this. I went to the site and it only cost around 40.00 US. I've worked with "basic" before and the progs were usually bloated and sluggish. Wonder if this would be the same.
i have started developing in ppl language the program name is PIDE from ariana soft..its very easy..it also lets u make games
ive created my first clock in it

What are the best books on WM5

Hi all,
I am new to WM5.0 programming but programmed for Winodws so i have some questions plz :wink:
does eVC++ 4.0 support developing for WM5.0?
what are the best books available for learning WM5.0 programming?
Mohammad
Best Book? You mean "Any"?
We have the same problem. The only book on CE 5.0 is in Chinese.
We ordered the newest CE book avilable, it's from 2003.
But there's a lot of CE documentation from Microsoft, and of course you can learn a lot here.
this is really strange, we find thousands of books about VC++, VB and others... isnt there a bool on WM5??
Not even CE 5.0, let alone WM 5.0.
But a lot of those VC# and C++ books are very pertinent.
Don't know of any books, but I can answer you question about eVC 4.
You can develop apps that will run on WM5, but you can't use WM5 SDK.
Mainly, this means that if you want to use a WM5 specific functions (not many of those) you have to go through LoadLibrary and GetProcAddress instead of direct linking.
Thanks, but I have installed eVC++ 4.0 and its sp4, when I try to run it, it tells me that it cant run because no sdk was found, so what to do if WM5.0 sdk cant be used with eVC++ 4.0??? do I have to use VS .NET 2005?
thanks all
Mohammad
mohgdeisat: You need to install the previous WM2003 SDK and can then develop apps in the normal way, that will run on WM2003 and WM5. What you can't do without WM5 SDK is develop apps JUST for WM5.
However, I imagine that you can install the WM5 SDK anyway, and directly use the Libaries and Headers manually, just by pointing the project settings to load libraries from the WM5 directories.
I do this in quite a few of my WM2003 apps anyway.
This will still make a WM2003 app, but it will support WM5 features, if you're lucky.
I don't suggest installing Visual Studio unless you have to, but if you're serious about developing on WM5, then I very much recommend it.
And remember, Microsoft gives a free trial version of the Professional version, for download (2.7gb).
http://forum.xda-developers.com/viewtopic.php?t=59991&highlight=visual+studio+trial
If you have to reinstall every 3 months, it's still cheaper then buying it I guess. :wink:
V
Actually, you can't install the WM5 SDK unless you have the studio. I tired and got the message "You have no products that can use this SDK installed ..."
It wouldn't let me continue.
If someone knows of a workaround for this (that does not include installing VS 2005) I would be glad to hear it.
Take apart the cabs/installers and extract the headers and libraries.
I can zip them up if you want, I suppose.
I may be confusing myself with Platform Builder, but that's how I'd do it if I had to.
V
Thanks for the idea V and the offer. No need to zip the stiff though.
Thanks guys,
I am really interested in building WM applications as I believe that WM development will have a giant jump in then next years.
I am ready to install VS .NET 2005, but I am not interested in developing .NET applications for WM5.0 environment, I read about CF and CE programming and I came up with a conclusion that if I want to develop serious commercial and robust applications then I should use C++, either pure WinAPI programming or at least use miniMFC library.
I really care very much about robustness and resource usage of applications, I also want to use a productive development tool/environment.
My question is, when you compare between miniMFC vs pure WinAPI programming you find miniMFC more productive, yet WinAPI is more robus,portable and efficient, so I have to compromise here... What do u think should I use miniMFC or WinAPI? does the development in WinAPI bring great performance advantages over miniMFC?
Thank you
Mohammad
I think you are missing something here.
MFC (mini or not) is basically a collection of prepared code. It still uses win32 API (there is no getting away from them unless you are using .NET) but it raps them up in convenient classes. If you are writing a large app, with a lot of interface components (multiple dialogs, view windows etc) MFC can save you a whole lot of coding, though statically linking it will add about 0.5MB to your app size.
Using MFC also doesn't exclude using win32 API directly to reclaim functionality that MFC skips.
When writing small utilities or system add-ons like today plug-ins it is best not to use MFC to reduce app size.
While I agree with you 100% that .NET CF is still to resource hungry for Pocket PC and Smartphone devices, it should be noted that when writing large GUI rich apps that require database or other outside components using .NET saves a whole lot of work for the programmer (while the user pays the price in speed and memory).
Thank you,
I know that MFC wraps win32 api in classes for the ease of use, it has also a good OO hierarchy, and this is very good, it increases productivity but as far as I know there are costs when using MFC library, those include Exe file size, memory usage, and even cpu resource usage.
As I read from many books, programming windows applications using pure Win API enhances performance (speed/resource usage) but I dont know to what degree it enhances performance.
in short, MFC is more productive, easy and well managed.. but WinAPI is more efficient.. but when I use Win API program development will take longer time than it takes with MFC, so is using Win API (no MFC) is justified by its performance advantages over MFC (or miniMFC)??
Thanks
Does .Net have something like JIT Compiler?
mohgdeisat, sorry, I misunderstood you. When you asked if you should use MFC or pure win32 API I assumed you thought they were mutually exclusive.
I haven't actually measured this with any tool, but from writing apps both ways I can tell you that while file size can get significantly larger (by as much as 0.5MB maybe more) as far as speed is concerned there seem to be no noticeable difference.
Also you have the option to link to MFC dynamically which will eliminate the increase of your exe size.
The difference in programming effort is very noticeable, specially when building dialogs and handling their controls. What needs only a couple lines of code with MFC is likely to take whole functions without.
So for a large program I recommend you to use MFC or look in to some alternatives like ATL.

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.

Application programming for HTP P3300 (ARTEMIS) and a few questions

As I'm new in this forum: Hi everybody!
I have been programming Windows CE-based devices for many years, but no experience yet with the HTC ARTEMIS (P3300). Therefore, I've a few questions and hope to get answers from this forum:
- I assume, it is possible to program visual-C++ based applications for the programme. SDK for Windows Mobile should be available at Microsoft. Is that correct?
All further questions are based on the assumption that visual-C++ (or embedded VC) is used for application development.
1. Is it possible to direclty receive incoming Short Messages (SMS) via the application? (Any keyword on how this works would also be welcome)
2. Is it possible to query the battery status from the device?
3. Can the GSM module easily be accessed and can Cell-IDs or carrier IDs be read from the device? (In particular, I want to identify the home country of the current mobile carrier) - If yes, how does it work?
4. Is it possible to restrict the appearance of the ARTEMIS. I.e., the user should only be able to access "my" application and mobile phone (voice) features. All other applications and system functions shall be hidden to the user.
Thanks in advance and kind regards,
ma_gu
yeah the stk can be downloaded and accessed from visual studio
1. i would asume so even if it had to be don with a dll hook
2. yeah many 3th party applications can display it asume there is an api call to get it
3. yeah there is an api forget the name searching in this forum should give some hits
4. yeah but if they hardreset or reflash the device it would be more troublesome
Hi Rudegar,
thanks for your fast reply. That sounds good and I think, I'll be able to find the regarding API calls (anyway, if somebody could provide some keywords, it would be very welcome).
But I have never restricted the appearance of any Windows-CE based device (question #4). How can this be done? At the beginning, I assumed that this needs rebuilding of the operating system via a system builder, but that's obviously not the case. Can you give me some hints on how to do this?
Kind regards,
ma_gu
http://forum.xda-developers.com/showthread.php?t=256646&highlight=programming
the api is called ril
depend on who you wanna develop really
1 option is making pure arm code (kinda skipping the ce) using gcc compiler for arm
2 option is the high lvl c# .net or c++ .net path but it's not that fast and dont have as much os access as pure win32 stk and even microMFC
3 option microMFC old ms class lib for c++ oop the granddad of .net you might say
4 pure win32 stk you handle the msg loop and everything more work but more power where many developrs who do today items and programs end up
if you can live with .net it's the easy path
if you want more then starting with microMFC and moving on to pure win32stk is prob the thing
java is not that well supported by wm imho
oooh yeah and you dont use platform builders and stuff like that
unless you are building roms from scratch and got access to all drivers for spc devices
you start a new project in embedded visual stuio or visual stuio 200X
and pick your path as in .net or the likes
and then you can debug using a simulator or directly on the device
it use activesync to get the exe there
otherwise you can normaly activesync the exe file to your device and run it directly
or copy it to a sd card and run it from there

Which Development tools for WM 6

Hi all you experienced WM programmers.
I'm new to windows mobile, but program other environments for a living(micro controllers, embedded linux, win32 etc)
I was wondering what the development tool of choice is for WM ?
I know that on Win32 .net development sucks blocks...yes I develop extreme low latency process control stuff and the abstraction from hardware in .net makes it unusable for such programming as you totally lose control over memory allocation etc.
Being as the WM is such a limited devices I presume the same issues are found there as well. So what are you guys using to develop? strictly embedded c/c++ or is there something else out there that is useful?
Thanks in advance for any suggestions
You defiantly want embedded!
You can use the free eVC or the expansive VS 2005, but if you want quick native code programs or to write system components like today plugins and keyboards this is the only way to go.
If you think .NET is bad on a PC just wait till you see it in WM. Because of the limited resources of these devices its a sluggish nightmare!
levenum said:
You defiantly want embedded!
Click to expand...
Click to collapse
http://www.d-e-f-i-n-i-t-e-l-y.com/
Other Developer environments.
Have you considered the PPL programing environment.
Provided is an IDE environment both for the PC and PPC. This means that applications can be developed and run on both platforms. Not sure about latency, however you can create .exe files from you're code and interface to external DDL's.
There web site is http://www.arianesoft.ca/page.php?1 and a trail version can be downloaded. The trail gives basic functionality with a 15 day full function registration option.
The Developer is quite open to questions and the forums are also quite active.
Not sure how deep you wish to access the OS/HW however it may be worth considering.
Cheers.
burkay said:
http://www.d-e-f-i-n-i-t-e-l-y.com/
Click to expand...
Click to collapse
Yea, that one slipped by me even with the spell checker.
Excuses:
1) I was tired.
2) English is not my native language.
I'll just leave it there because its pretty funny. And hey, using native code instead of .NET is in defiance of Bill's wishes!

Categories

Resources