What is the best programming language for developing PPC app - Windows Mobile Development and Hacking General

I have a little experience in using C, C++, Visual C#, VB6 and Macro Media AS. Now I want to explore programming appz for PPC.
What is the best programming language for developing PPC app that I can use.

Hi, greate!
Except for Macro Media all the languages you mentioned have compilers for PPC and some are even free.
As for which one is the best, well that depends on what you want from it.
My personal favorite is C++ because:
a. it’s the most powerfulpowerful (easy access to system APIs)
b. it runs faster (no interpreter)
c. you can download a compiler from Microsoft for free. (eMbedded visual C++ 4)
The only down side is that it's not a real visual language so you will have to do more work then in VB.
c# has the all the advantages of .NET but you need Visual Studio 2005 to make PPC specific apps + they take a while to load.
As for Visual Basic there are several compilers including eMbedded Visual Basic 3 from Microsoft (free), but I read the apps written in it are slower. Still it’s a fully visual language.
This is my opinion. You should search for other postings in this forum (there were a couple more on this subject) if you haven’t done so already.
Good luck!

I asked the same question 2 years ago!
I started developing PPC software about 2 years ago - I too needed to find out whuch was the best language - so I tried them all!! - I tried Java - C# - Creme - and C/C++.
Without any doubt at all C/C++ is best - it is native, fast and relativly streight forward. You can use MFC if you like. You can download the compiler free from Microsoft and the support is actually quite good. The Compiler IDE is quite good also.

Just to revive this thread. I thought of starting to write something for PPC. I thought the best place to start is to get the Windows Mobile SDK from Microsoft. However, it seems that the SDK require Visual Studio 2005+ to be installed before I can have the SDK installed. Is there another way to get it started (preferably with SDK and examples) without having me to get a Visual Studio 2005.
Additional info about me: I used to be good in C++ for DOS/Windows, but the current works requires me to work in Java (multi platform). So, just give me a vague idea and I'll find my own way

Hanmin - download the SDK for WinMob 2003, not WM5. EVC supposed to only be compatible with WM2003 SDK. VS2005 for WM5 stuff. The download is a lot smaller too!
V

hands down c/++
normal basic is evil
basic .net is just c# with an evil syntax
c# is nice enough but slow ever so slow
java dont have as nice a platform as on symbian or pc's or well anything else then pocketpc's
with mfc some work is done so you dont need to do manualy for every app
but doing it pure win32 is faster though but have a higher learning curve

I had downloded the embedded VC and installed the SDK for WM2003. I'm trying to write a software to determine the remaining life time of a battery in terms of hours and minutes.
This is what I found out. To get the battery status, I can get it from
SYSTEM_POWER_STATUS_EX
which quite a few properties, but of the few, the interesting ones are:
BYTE BatteryLifePercent;
DWORD BatteryLifeTime;
For BatteryLifePercent, it is Ok. I get to print out the percentage based on
wsprintf(szTextBuffer, TEXT("Battery: %i%%"), g_bBatteryPercentage);
where I assign BatteryLifePercent into BTYE g_bBatteryPercentage
However, for BatteryLifeTime, I seems to be having some problems. I have the code
Code:
if (g_dBatteryLifeTime == BATTERY_FLAG_UNKNOWN){
wsprintf(szTextBuffer, TEXT("lifeTime: unknown"));
} else {
wsprintf(szTextBuffer, TEXT("lifeTime: %hu"), g_dBatteryLifeTime);
}
and I get the value "65535", which if that represent seconds, I should have 18 hours of battery life left. However, I think I have less than that. And consider 65535 is a '2'-base number, it looks more like it is either overloaded or it is a reserved flag.
Anyway, my questions:
(a) other than %hu, whatelse can I used for g_dBatteryLifeTime, which is a DWORD. I tried %lu and %i, where the first gives me nothing, the second one hang my machine.
(b) is this `BatteryLifeTime` working or not?

%d is the normal switch to get a nr

There's a constant BATTERY_FLAG_UNNKOWN that you should test against, also. If that's set, the life time isn't valid. Otherwise, like it or not, that's how long the phone thinks it has left. Keep in mind that the value is probably going to vary wildly as power usage can vary pretty wildly. As mentioned above, you should do something like:
SYSTEM_POWER_STATUS_EX sps;
TCHAR sz[ 64 ];
GetSystemPowerStatusEx( &sps, TRUE ); // Use real time, not cached
wsprintf( sz, _T( "Time: %d" ), sps.BatteryLifeTime ); // in seconds
Oh....and as I recall, little of that stuff actually worked except percentage last time I checked so don't be too surprised if all that's valid is percentage.

Actually it all depends on the battery driver. I had a chance to work with some devices that didn't even report percentage, only voltage and I doubt there is a PPC out there that can accurately report time.
If you really want to determine the time you will need some sort of learning mechanism that will measure up time and battery percentage to calculate remaining time.

Guys, this is offtopic. You want me to make a new thread and move the posts?
V

PPL(Pocket Programming Language)
i found a new programming language its PPL(Pocket Programming Language)
you can install it on your ppc this have compiler ,interpreter and others you can write a program on your ppc and compile it to exe
but C++ is a boombastic language for me,you,

VJ: No problem. I think it stopped. Actually, I've stopped the programming front, I'm skinning these days
accepted: It looks alright, but as it is not a standard language, the stuff you learned from it will go as the PPL disappeared, but with C++, it will stays quite a while. I used to be a C guy and now I'm more of a Java guy which I think C will end as Java rule the world.. but C stands up very strong (thanks to M$). Anyway, you can try the embeded version with tutorial and stuff, easy to start but quite difficult to do a full scale program with it (for beginners). If yuou want quick and dirty method of writing limited number of programs, yeah, I think PPL will takes you on a while.

PPL
Write software for your PocketPC and PC in minutes using our new programming language. PPL is a fast and easy-to-learn programming language that is fully object-oriented. PPL runs on all Pocket PC using PocketPC 2000, 2002, Windows Mobile 2003, 2003SE, and 2005 (VGA compatible). PPL also runs on Windows 2000, XP, 2003 Server desktop computers. Programs written for one system are 100% compatible with the other.
Write high quality games in no time using our easy-to-use GameAPI that incorporates physics, isometric display support, pixel-perfect collision detection and so much more...
Design forms visually on your PDA or desktop computer with the visual form builder. Edit components properties and code events within the same interface. PPL is a complete development environment.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
The main interface for PPL on the PocketPC. It has been written entirely in PPL and the source code is provided.
Write programs on the road. The editor on the PocketPC. It has been written entirely in PPL and the source code is provided.
Create nice forms on the road. The Visual Form Builder on the PocketPC. It has been written entirely in PPL and the source code is provided.
Get a complete report with statistics on compiling even on the PocketPC.
SDK<Software Development Kit> Edition Features
Windows API support
Visual form design
Linked-List support
Object-Oriented syntax
Powerful matrices
Tools to develop on PPC
String compression
GameAPI
COM and ActiveX
Regular expressions
Enhanced versions of PIDE
Physic & particles engine
File Packaging
Compile to .exe
PPL Assembler (PASM)
Code Profiler
Memory Leak Analyzer
Extended functions
Full version of PIDE
SDK libraries
What is the SDK version of PPL?
The SDK version is a simple module that you include with your project to allow for scripting capabilities. You can also integrate your own functions inside the PPL language. It comes with a pplsdk.dll file (for the PC and PocketPC) and header files for C, Visual Basic and Delphi. The SDK comes with the Pro version of PPL
Acronyms
SDK = Software Development Kit
API = Application Programming Interface
PPL = Pocket Programming Language
PPC= Pocket PC
PIDE = PPL Integrated Development Environment
VGA = Video Graphic Adapter
PDA = Personal Digital Assistant
PC = Personal Computer
Code:
http://www.arianesoft.ca/
it's very very portable language

Rudegar said:
java dont have as nice a platform as on symbian or pc's or well anything else then pocketpc's
Click to expand...
Click to collapse
what about SuperWaba? maybe it could satisfy hanmin's requirments.

I use ppl too. The IDE is really comfortable. You get good results very quickly...

Related

Vijay555 - tools for WM5 software development?

Hi Vijay555, you keep releasing amazing and useful utilities for WM5 / Universal, I have read many of your posts and note that you consider yourself almost a novice in programming C. What I would like is a list of the applications, tools and reference material which you work with when making your utilities. I too would love to write some small bits and pieces for the Universal and too save me the research and help me avoid any pitfalls you have come across, perhaps you can give us all an outline as to your particular setup?
Keep up the good work Vijay, we do all appreciate it!
Regards
gooroo: many thanks for your kind words.
Let me first say that I am an absolute amateur in programming on the Pocket PC. As I've said many times, there are many incredible guys (and gals!) on this site and it's a pleasure to know you all, but none of my little releases are anything compared to the stuff they bring into the world. Anything I say below is certainly full of errors, so take it all with a “pinch of salt”!
Second: I'm working very late in the office these days, but during the little free time I have, I am working on redesigning my website, hopefully to also launch a blog and ultimately a new forum (I don't host my current forum, and it goes down from time to time). The blog will carry an RSS feed to show when new releases are available, but also address the problems and lessons learnt that I encounter when programming.
But, to start you off, first some info about my “experience” or lack of!
My background is not as a programmer. I have played with computers for years, and am “self taught” in VB. Whatever anyone says about VB not being a real language, I say that it's still the best way to do quick and effective GUI based PC work. And with VB .net, it's as powerful as any other language. The kind of stuff I was doing with VB was about as far as VB could go, and I’d say it’s still a very competent language and a good one to learn from. I still program in VB daily, and built my own webbrowser in it, and I don’t use any other browser!
So, VB learnt to a reasonable degree. And I've written many little (and not so little) programs on the PC. However, after upgrading from a p900 to a Magician late last year, there were many small things that I saw weren't quite "right" with WM2003. I was quite pleased with the OS, but a few things that were clearly missing for it to be entirely satisfying. However, I was very pleased that it was a pretty “open” system, in that it was basically a system I could learn to program for. That’s the biggest difference between our phones and non-“smart” phones. Remember, it’s us that make smartphones smart!
So, I thought about using eVB, embedded Visual Basic, for the phone. But first there’s no guarantee it’s going to be supported in the future, and it relies on a “run time” to work. For anyone that doesn’t program, a run time is basically an interpreter that takes eVB code and turns it into code the phone understands, providing facilities in a kind of “library” of functions the eVB code can call upon. Although useful, this interpretation takes time, and so can be slower than non-interpreted code.
At this time I also had the pleasure of meeting a wonderful guy who works for Microsoft, David Goon. Although at the time he was showing off how amazing .net is, I asked him about the best way to start programming Today plugins (which was what I wanted to program at the time), and he said that C++ was still the most effective way. Although Today plugins can be written in .net, .net still relies on a kind of run time (called the Compact Framework) , and this can again slow things down.
Some background about .net: this is not one language, but basically an incredible idea for “unifying” languages. With .net, you can program in any language supported by it, including C++, VB, and many others (I understand there are about 20 languages or so!). These are all effectively “front ends” to a huge library of functions – the computer again “interprets” your chosen .net language into code it can understand. But what this means is that all .net languages have the same “power” since they all ultimately rely on the same “root” library.
Now, anyone learning to program should have a look at a few online tutorials and try to get the feeling for a language they like. All have strengths and weaknesses. As far as I’m concerned, I had no choice, I had to learn C++ for my Today Plugins. C++ is, as the name suggests, an extension of the C programming language (the name is a kind of joke only programmers could get away with. ++ in C means “increment”, increase by one – so C++ is C with a bit more!). But C and thus C++ are old languages! But it’s effective and powerful. It has been said that the vast majority of the Windows operating system has been programmed in C++.
So, why isn’t everyone programming in C++? Well, it’s not always the best way to do things, “new” languages are still being developed, and C++ has itself been expanded by Microsoft into a language called C# (C sharp). I can’t tell you about any languages other than my own experiences with C++ and VB. Maybe someone else can provide some details? But going from VB to C++, one of the biggest things to learn is about memory management.
VB allows programmers to be very lazy with memory. If you need some memory, you just ask for it in a rough way. In C++, at every stage, you must tell the system: “I need some memory. It needs to be this kind of memory. I’m going to use it for this long. It’s going to contain this kind of data”. That takes a lot of learning – you need to form a lot of new habits, and it’s easy to forget them, which can lead to crashes, or “memory leaks”, where you forget to “give back” the memory you asked for, so over time the system memory just “disappears”.
Because C++ is very strict about memory, it also helps it to be very precise, very fast and effective. C++ is faster than .net normally. But, one major reason why .net was developed was because of the memory problems. In C++, if you say “I need 10 bits of memory”, and then you try to put 15 bits into that space for some reason, what happens? It overflows. That overflow might not be noticed… but it might be overflowing into another important bit of information: like when you spill coffee on your white table cloth, you’ll notice it! This kind of overflow can cause major crashes, and it’s a favourite way for hackers to crash your operating system or server, put viruses onto your system, or run pirated games on your xbox. It’s an exceptionally useful technique to learn for that kind of hacking, but ask me about that another time…
So, “buffer overflows”, as they are known, are bad. And C++ makes it very easy for a programmer to allow them to happen if he’s not careful. And that causes crashes etc. Who’s to blame? Normally the programmer! But .net and some other languages are designed to catch this kind of stuff. They are designed to prevent these kinds of accidents to make it much harder to cause problems outside of your own programming. This makes the operating system more stable. So .net is good, at a cost of some speed. On your PC, that’s not important, your PC is fast. But your PDA is never fast enough, is it?
The kind of stuff I’m programming is called “Win32”. As the name suggest, Win32 is part of Windows – it relies on the Windows API – Application Program Interface. This is a set of functions the operating system provides to “do stuff” with the operating system. This can be things as simple as putting “…” on the end of a bit of text, or as complicated as logging onto a network and sharing files. You could technically skip Win32 and program these things yourself, but it would be very tedious, and not always compatible between one system and the next one. Software that uses the Windows API should work on any other system using the same APIs.
Note: The operating system on our phones is currently called Windows Mobile (it’s been renamed a few times!) which is basically a version of Windows CE, an operating system used in various types of “embedded devices”, like set top boxes, cars, shop tills and so on.
I’m using Win32 and C++ to do pretty much everything I do on the Pocket PC. There are “extensions” that work on top of Win32 to make things “easier”, eg MFC, the “Microsoft Foundation Class” Library, but my advice is learn Win32 before learning these extensions. It’s always best to know how something works under the skin before dressing it up. So, whatever language you’re learning, I suggest you become familiar with the way Win32 works, if you’re doing operating system type work. It’s incredibly boring, but a skill you’ll keep for as long as you program on Windows. The PDAs have a “subset” of the full Windows API, but much of what you learn will work on a PC and a PDA. The best ways to start learning Windows API is, in my opinion, to browse the MSDN – the Microsoft Developer's Network. This is an enormous collection of information on pretty much everything Microsoft does. I couldn’t code without it.
The second best way to learn Windows API, but also extremely useful, and essential, is to download and review the Pocket PC SDKs (Software Development Kit). These contain information necessary to learn about how to program for that particular device. You can choose which SDK you download – one for Pocket PC 2003, or Windows Mobile 5. I suggest that if you’re learning C++, you should start with the PPC2003 SDK and then move to WM5. You might as well learn to program for both, but if you only learn about WM5, it might not always be compatible with PPC2003. But PPC2003 is almost always compatible with WM5 (since the newer system has expanded the “old” one). And there are still a lot of WM2003 users out there! SDKs on MSDN.
Another good reason to learn C++ is because the programming “environment” you need is basically free! Microsoft makes eVC – embedded Visual C++, available for free from here. Again, whatever you’re programming, free is always a good price, so you might as well download it and start playing! It’s a 200mb+ download, but it contains lots of information for you to start learning.
To properly develop for WM5, and if you’re going to develop in other languages, then you’ll need to get hold of Visual Studio 2005. It’s a very nice environment to program in, particular if you’re using .net. The C++ environment is a much more basic, it doesn’t have a lot of the incredibly useful things built into the .net programming environment, but it works! And if you program in C++, you get used to pain And of course, VS2005 also allows you to code for the PC in the same environment.
Ok. So, at this point you’ve chosen a language, chosen a programming environment, and are ready to start learning to program. My advice now is to stop! Don’t touch the computer - go to a book shop and buy a book, a paper book, not an ebook, on your chosen language, and start reading it. I find holding the tangible book in your hands a much more reassuring way to learn and absorb since you can see how much you’ve got through and how much is left, and it’s very quick to jump from one section to the next. Most programming books come with an electronic version as well, so it’s even better (tip: most ebooks can be converted into a version you can also read on your PDA, so they’re great for long train journeys! Contact me if you need help with this).
For C++, I’m still extremely new, so I started off with “C++ for Dummies” by S. Davis. I’m sure other people would recommend other books, but I’m a Dummy, so it was very useful to me. In some places it’s a bit too brief, in others it’s too detailed. But you’ll learn at least the basics and a bit more, and be ready to move further. It’s a very good place to start! Amazon Link
Next, I suggest looking at the SDKs. They come with many example programs to demonstrate various ideas, and they’re an invaluable resource. At this point, you should also get hold of a PocketPC/Windows Mobile specific book to learn how the operating system works. “Programming Windows CE.NET” by D. Boling is probably the best way to start; he’s extremely readable and this book is excellent. (He writes a lot of the PPC stuff on MSDN!) One thing to note: it’s all non .net C++, despite the name, except for a few pages at the very end. If you want a .net reference book, get a .net book, not this one! But this book is never-the-less essential for anyone learning to program for Windows CE. Amazon Link.
I also recommend “Windows CE 3.0 Application Programming” by N Gratten and M Brain. Not as big as “Programming Windows CE.NET” but more detailed in some areas, less so in others. Amazon Link. If anyone has this book on paper, please contact me.
Ok, at this point, like me, you’ve spent a long time reading and reading and reading. Now start some coding! Learn to program “hello world”, and from there, the sky’s the limit. The website PocketPCDN will be extremely helpful to you. XDA Devs is an astonishingly useful tool for programmers and for learning good and bad habits for coding. I recommend you read every post written by the geniuses on this board. You should already know who they are :wink:
Modaco is also a very good place to search Newsgroups etc.
When you start really getting into this Windows CE programming, you may want to download the Platform Builder trial from Microsoft. Platform builder is basically the tool used by our phones’ manufactures to prepare the ROM and systems we use. You could do the same if you wanted to, but would have to write the drivers etc for the hardware. But it contains an enormous amount of code for the internal workings of Windows CE.
I’m absolutely no expert. I have no experience beyond what I’ve mentioned here. However, programming is extremely time consuming and takes a perverse dedication to a goal. It’s very rewarding when people say your code is helpful to them, because only you can really appreciate how much work goes into it! It’s helpful to be able to survive without sleep, to dream about coding and have the kind of mind that can take problems apart, and hates to give up on a challenge. I recommend that everyone should have some basic idea about coding – for guys, since we can’t create life, creating code is about as close as we get to Eve’s Burden!
I hope this information is helpful! Please comment with corrections, questions and your own helpful advice.
V
PS – if anyone wonders why I’m so egotistical about calling all my programs VJBlahBlah, it’s because I write a lot of Macros to expand Microsoft Word. But for some incredibly silly reason, the Macro dialog in Word has been non-resizable for at least the last 12 years. And when you have a lot of long filenames, it becomes almost impossible to find them. So all of my macros will always be in approximately the same place on the list..
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
A very useful insight into programming vijay555
Vijay, fantastic! This was exactly the reply I was hoping for, hopefully this will inspire others to really get to know there PPC's I know it has for me! I do come from a programming background, the remark of dreaming about coding made me smile, I know exactly what you mean. I have gone to bed in the past thinking about how best to write a piece of code, only to wake up with an amazing, simple and elegant soloution. The links were the icing on the cake btw, thanks again!
Regards
i used to learn vb and c++. I have problems with understanding the use of different syntax and other indepth functions. VJ you are right, it's easy to forget.
thanks for this intro. It enlighten me again to go back to learn about it.
VJ - NEED title bar On/Off for BT, Wifi, Phone!!!
VJ, oh God of that which allows few keypresses...
OK, now that the sucking up is over... ...
I would love to have separate On/Off toggles for BT, Wifi & Phone, w/o having to go to the Wireless Manager screen. I would hook these toggles up to hardware keys in an ideal world.
Any chance you can take on this challenge? It seems that your utilities would allow this kind of functionality (or have you already done this?)...
Thank you!
3Space:
You can make requests for (easy) programs for me to write on my forum. The GPRS app has already been asked for, and I got about half way through and then got distracted by VJBigPhone a while back. Have to finish that.
There is a bluetooth toggle available somewhere. If you can't find it on here, check out www.pdaphonehome.com, it's definately on there. However, I will develop all three at some stage, and when I do, I'll post on here in the usual manner
V
ok, thanks VJ! I didn't think to look for individual applets for each of these, but better than nothing! Looking forward to the VJ version tho!
Guys, does anyone have a copy of the CD that came with
“Windows CE 3.0 Application Programming” by N Gratten and M Brain? My second hand copy came without.
What a name, M Brain. So fake! "A. Genius" "N. Arcissist"...
V
Hi Vijay, hope this helps buddy, least I could do
http://www.nickgrattan.net/Books/WinCE3main.htm
Regards, Simon
Doh, I'm so stupid!
Thanks a gazillion Gooroo. Now to get the "other" app
V
The eMbedded Visual Basic is available from MSDownloads, with the CD Key for free if thats what you are after, eMbedded Visual Tools 2002 is the one I downloaded.
Regards
Cheers Simon. I'm ok for VB, I'm all C++ for now...
Thanks though!
V
And the M stands for Marshall. That really is funny! One of my favourite joke names is R Sole...
Only just seen this one vijay. I like your long post about programming. Really good, inspirational stuff.
Hi Melty.
inspirational stuff
Click to expand...
Click to collapse
Our chat some time back was inspirational, kept me programming!
I like your info on my Frappr page How's the gambling going? You still working for a living? Get your a$$ to the gym...
V
Hi Vijay, Our chat was inspirational to me too. It's always good to find a kindred spirit (or fellow lunatic)!
The gambling is not going so well at the moment. Well, more watching than doing at present, so no money lost. Once it's ready then I will definitely be giving up the day job and spending more time on the fun things in life, like programming and reading books and other geeky **** which I think is fun :shock:
And of course, apologies for not replying until now, but I was at the gym :lol:
question for registry access
hi @all,
i have the following problem: i write an application that should read some value from the registry from my wm5 device.
as IDE i use the eVC++4.
here come the code:
char lszValue[100];
LONG lRet, lEnumRet;
HKEY hKey;
DWORD dwLength=100;
int i=0;
lRet = RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE\\ADOBE", 0L, KEY_READ , &hKey); // in this Line i get the following ERROR
/*
error C2664: 'RegOpenKeyExW' : cannot convert parameter 2 from 'char [15]' to 'const unsigned short *'
*/
if(lRet == ERROR_SUCCESS)
{
lEnumRet = RegEnumKey (hKey, i,lszValue,dwLength);
while(lEnumRet == ERROR_SUCCESS)
{
i++;
printf ("%s\n",lszValue);
lEnumRet = RegEnumKey (hKey, i,lszValue,dwLength);
}
}
RegCloseKey(hKey);
has anybody an idear why this code not compile?
thx for help
bye
I'm just rushing off for lunch, but at a quick glance, why aren't you using Unicode strings, eg TEXT("SOFTWARE\\ADOBE")?
V
@vijay555
that parameter 2 not correct is i'm see too. but why?

Native IDE/compiler solution for Universal/PocketPC?

Ie. a compiler that lets me make PPC-runnable applications from the PPC.
I do not really need the IDE, although it would be very nice of course.
The language/libraries basically just need to support text input and output, or some kind of access to the GDI/graphics interface, so I can develop and experiment while I'm out travelling.
I'd really want this, if it can be found anywhere, I'd even pay for it..
preferably C++ or as low-level as possible, I'm also quite decent in
assembler.
I have tried the perl thing, and although cool, it was a very reduced version of perl, and also naturally quite slow because of the processor.
Any tips in this direction would be very welcome
Nevermind.. I found PocketGCC, so for others that are interested in this info:
http://pocketgear.com/software_detail.asp?id=11502
It should do the trick. Only console for now, but that's OK for me.
If there's a better alternative, I'd love to see it though. Not sure how well this console interfaces (interrupts, keystrokes etc).
Check out Mamaich's website for some other stuff related to PocketGCC.
It does work, but it's hard-ish work. But with a keyboard, it'll be easier. Grab yourself the SDK demos from the yahoo groups website.
V
ahh ok thanks man, I found the Mamaich pack here:
http://sourceforge.net/project/showfiles.php?group_id=96949
I have a keyboard on the PPC of course.. Universal I can type almost as
fast on it as on a normal keyboard, which was really surprising to me.
I think it can work, and I'm really ready to start coding on this.
Let us know how it goes. It would be interesting to see how feasible is host development on windows mobile (I do hope that it's not an eye opener though lol)
PocketGCC is great! I made use of it on my honeymoon.
However, you appreciate something like VS2005 with syntax completion etc, but at a push, it's very competent.
Oh, no resource editor. I think there's another one that can be used from Pocket C or something like that.
V
vijay555 said:
PocketGCC is great! I made use of it on my honeymoon.
Click to expand...
Click to collapse
haha! Well if it's honeymoon material, maybe even my girlfriend will like this (she's a programmer too). ^^
However, you appreciate something like VS2005 with syntax completion etc, but at a push, it's very competent.
Oh, no resource editor. I think there's another one that can be used from Pocket C or something like that.
Click to expand...
Click to collapse
OK, nice! ^^ but you say resource editor, makes me think you can make GUI apps.. I thought PocketGCC only gave you access to console IO? Or is GUI libs what the Mamaich package contains?
As I said, if you hunt around in the yahoo groups, you'll find someone has prepared a full set of the PPC Sdk demo apps for PGCC. And they're almost all GUI apps. So yes, Pure Win32 C++ GUI apps are possible.
And you can compile your .rc as well, so if you're competent with notepad, you can make your .rc yourself, although you'll still need a bitmap editor (I like PocketArtist).
But as I said, I think Pocket C has a resource editor you can felch (don't look this word up!).
V
vijay555 said:
But as I said, I think Pocket C has a resource editor you can felch (don't look this word up!)
Click to expand...
Click to collapse
Hmm... all I know is "to belch" or "to filch"... I hope you don't mean either of those :lol: :wink:
Nope, felch is what I mean
Filch works well enough in the context, that can be the "censored" version
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
V
rofl.. omg...
http://en.wikipedia.org/wiki/Felching
sick, sick, sick.
I can only find this:
http://prdownload.berlios.de/cegcc/Pocket_PC_2003_SDK_Includes-2006-03-09.patch
Which is a patch for the includes.. and then I download the SDK seperately? Or is there (as I interpreted you first) a rar/zip of the SDK samples that are prepared to be compiled by the standard PocketGCC package?
Sorry for the questions! But the Yahoo group was kinda messy, and been looking there for a while now =P
Theoretically, you could code your application whichever way you like, even using Flash (Lite).
You must then worry about making it compatible with WM5.0 and then packaging it. Still, fairly simple process.
You have to register and then check files:
http://groups.yahoo.com/group/pocketgcc/files/Source Code/
V
Excellent! Thanks Vijay.. (I thought it'd be a link from the discussion).
OK.. let's hope this will be a useful thread for other people that want to
do the same. And I'll just, ehm.. felch.. =X that file then and shut up.
Thanks again!
For some other pointers on books and sdks etc, you can have a read of this tale of woe I wrote once upon a time:
http://forum.xda-developers.com/viewtopic.php?p=209136#209136
V
Well, I've been programming for 18 years, and started in the absolute opposite corner of what you did (C64 assembler), so for me C++ was more like "wtf.. you can't just grab a memory address and use it?" ^^
anyway this link is definitely good for the thread.
Some bad news though.. even though PocketGCC will work, the supplied console does not seem to run (outdated). The Rainer Keuchel one also seems to be out of date for WM5. ;( I'll update this thread if I find a solution.
PocketC seems to work nicely and includes an editor:
http://www.orbworks.com/wince/download/rt/pkpc300.PPC30_ARM.CAB
Not sure what the scope of it is though..
Apologies for the other post, with 18 years you must see in pointers:
Hopefully it'll provide some "pointers" for other people looking for somewhere to start. I'm still very much of an amateur at c++, so of course, any advice is always appreciated!
I forgot about the console problem on WM5. I haven't investigated recompiling it for WM5 yet, although the various source codes for the console options are available. If you do recompile, let me know!
V
Pocket Console on WM5
I was having trouble getting Pocket Console (http://www.symbolictools.de/public/pocketconsole/index.htm) to run on WM5 - and eventually found the following info:
HKEY_LOCAL_MACHINE\Drivers\Console registry key is required to configure the command processor, the value OutputTo should be set to 0 to ensure console is displayed (Mine was -1).
This may be what is needed for people trying to use other console apps.
This can be seen on:
http://msdn.microsoft.com/library/d.../wce50conCommandProcessorRegistrySettings.asp
This lead me to another issue: The console display is not being automatically refreshed, so you cannot see output/input until you force a refresh (e.g. by selecting all). Any thoughts on sorting this out would be appreciated.
Martin
two relitavely new languages i've found, that run directly on a PPC.
basic4ppc
http://www.basic4ppc.com/
Pocket Programming Language
http://www.arianesoft.ca/page.php?1
Hi there,
i know this posting is quite old, but i'd like to refer to the console issue anyway.
martinkendall said:
I was having trouble getting Pocket Console (http://www.symbolictools.de/public/pocketconsole/index.htm) to run on WM5 - and eventually found the following info:
HKEY_LOCAL_MACHINE\Drivers\Console registry key is required to configure the command processor, the value OutputTo should be set to 0 to ensure console is displayed (Mine was -1).
This may be what is needed for people trying to use other console apps.
This can be seen on:
http://msdn.microsoft.com/library/d.../wce50conCommandProcessorRegistrySettings.asp
This lead me to another issue: The console display is not being automatically refreshed, so you cannot see output/input until you force a refresh (e.g. by selecting all). Any thoughts on sorting this out would be appreciated.
Martin
Click to expand...
Click to collapse
I also recognized the non-refreshing console.
The attached package is working perfectly on the universal. It's taken from the WindowsMobilePowerToys package from microsoft.
Follow the readme and enjoy!
scholbert

Development Resources for WM- UPDATED 4/24/09 MAJOR UPDATE!Added more on 10/01/09-

Well, I combined all the links that were in this post into an Excel Spreadsheet for easy viewing. Its seperated into categories which will allow you to find what you need or are looking for quite easily and fast. If you dont have office, goto openoffice.org.
Here is how I categorized the file:
Freeware
Commercial
Tutorials
Great Links
SDK's
C#
VB.NET
C++
Libraries
Art Help
Install Creators
Source Code
Code Converters
DirectX
Omnia stuff
Tools
Some items I felt deserved to have recognition and put them in multiple spots. The commercial category also does contain prices on that piece of software.
This spreadsheet contains resources upto this post:
http://forum.xda-developers.com/showpost.php?p=3685331&postcount=82
Enjoy it!
EDIT: Keep looking at the last few posts for recent updates. There's been more.
More
Here are some more development environments:
SharpDevelop http://www.sharpdevelop.com/OpenSource/SD/Default.aspx and the download page: http://www.sharpdevelop.com/OpenSource/SD/Download/ Version 3 might not work with the compact framework, but version 2.2 does (I use it to develop my programs).
Lazarus: Pascal: http://snapshots.lazarus.shikami.org/lazarus/ I used version 2.2.3 successfully
good forum here:
htp://www.lazarus.freepascal.org/index.php?name=PNphpBB2&file=viewforum&f=17&sid=afea0e515f0090fef3aaee9c84fe72cf
Dialect: http://sourceforge.net/project/showfiles.php?group_id=42170
this is a wonderful idea. i'll be updating this post everytime i find something new to add.
thank you
Pocket Programming Language...
... Don't forget PPL, it allows Desktop Windows and device programming, and you can develop on the device itself.
http://www.arianesoft.ca/
Free "lite" (essentially unregistered) version available.
I've been messing around with the Pro version for quite a few months now. It uses a C-style code (but not exactly C) and is interpreted. The Pro version lets you compile to a standalone .exe app. Lets you make normal WinCE API calls. Includes a game engine, etc etc.
Under continuous development, and the developer is very responsive on his forum. Check it out.
NSBASIC
... and another is NSBASIC -- It's been a while since I've looked at this but it seems they just came out with a new version. This also allows on-device development.
http://www.nsbasic.com/ce/
By no mean do I intend to intefere in the topic flow, but doesn't the Wiki sound like a better place for all these kinds of ideas? If we're just gonna list web sites and products without discussion.
thx for u all guys suggestion...so i will start my work soon and hope to get response from u all once i face proble and need helps...
No Problem. They really should Sticky this thread or someone should atleast put this in the Wiki as it was mentioned. These in my opinion are very useful links to know.
Post Stickied for now
Cheers
good
this is the best article,support!!support!!support!!
Here is my list of links I have collected about mobile programing. Maybe someone else will find them useful.
Mobile PractiCEs: How to deploy the .Net Compact Framework and SQL Server Compact Edition
http://www.mobilepractices.com/2008/02/how-to-deploy-net-compact-framework-and.html
Tcl on Windows Mobile: Introduction
http://www.kocjan.org/tclmentor/1-tcl/17-tcl-on-windows-mobile-introduction.html
CodeProject: Implementing a smoothly animated ListBox. Free source code and programming help
http://www.codeproject.com/KB/list/SmoothListBox.aspx
Shell, GWES, and User Interface
http://msdn.microsoft.com/en-us/library/aa932172.aspx
Mark Prentice
http://blogs.msdn.com/markprenticems/default.aspx
Windows Mobile Pocket PC Smartphone Programming: Windows Mobile Pocket PC Smartphone Programming
http://windowsmobilepro.blogspot.com/2005/08/windows-mobile-pocket-pc-smartphone.html
Alex Yakhnin - Implementing Gestures recognition in .NET Compact Framework.
http://blog.opennetcf.com/ayakhnin/PermaLink,guid,63a34779-cf6e-41e8-972f-4ad3cbe77688.aspx
CodeGuru: Creating Custom <em>Today</em> Screen Items
href="http://www.codeguru.com/cpp/w-p/ce/pocketpc/article.php/c9269/
Developing Screen Orientation-Aware Applications
http://msdn2.microsoft.com/en-us/library/ms839354.aspx
Writing Mobile Games Using the Microsoft .NET Compact Framework
http://msdn.microsoft.com/en-us/library/aa446533.aspx
Building Graphically Advanced Applications with the .NET Compact Framework 3.5
http://expression.microsoft.com/en-us/dd279543.aspx
PythonCE
http://pythonce.sourceforge.net/
Deployment Patterns for Microsoft .NET Compact Framework
http://msdn.microsoft.com/en-us/library/aa446503.aspx
CodeGuru: Pocket PC
http://www.codeguru.com/cpp/w-p/ce/pocketpc/
Windows Embedded Blog : Windows CE Kiosk Mode - Part 11
http://blogs.msdn.com/mikehall/archive/2005/08/03/447386.aspx
Mobile Development
http://blogs.msdn.com/raffael/default.aspx
Windows Mobile Development
http://www.christec.co.nz/blog
CodeProject: Pocket 1945 - A C# .NET CF Shooter. Free source code and programming help
http://www.codeproject.com/KB/mobile/CfPocket1945.aspx
Windows Mobile Team Blog
http://blogs.msdn.com/windowsmobile/default.aspx
User Interface
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/ppc_yapi.asp
Alex Yakhnin
http://blog.opennetcf.com/ayakhnin/default.aspx
>CodeProject: Pocket PC and Smartphone 99% .NET MAPI. Free source code and programming help
http://www.codeproject.com/KB/mobile/PocketPCandSmartphone.aspx
Windows Mobile: How to run a method when device wakes up/ comes back from sleep mode
http://jajahdevblog.com/jasmine/?p=32
Adding Compact Framework Design-Time Attributes, or More Fun With TextBoxes
http://blogs.msdn.com/bluecollar/ar...me-attributes-or-more-fun-with-textboxes.aspx
CodeProject: Windows Mobile: Implement kiosk mode. Free source code and programming help
http://www.codeproject.com/KB/smart/CF_kiosk_mode.aspx
Creating Self-Updating Applications With the .NET Compact Framework
http://msdn.microsoft.com/en-us/library/aa446487.aspx
Starter Kits
http://msdn2.microsoft.com/en-us/windowsmobile/bb264330.aspx
Code Samples for Windows Mobile
http://msdn2.microsoft.com/en-us/library/bb158662.aspx
CodeProject: iPhone UI. Free source code and programming help
http://www.codeproject.com/KB/mobile/IPhoneUI.aspx
.NET Compact Framework How-to Topics
http://msdn.microsoft.com/en-us/library/ms172482.aspx
Dvorak Soft Input Panel
http://msdn.microsoft.com/en-us/library/ms881221.aspx
SourceForge.net: SyncMLDotNet
http://sourceforge.net/projects/syncmldotnet"
Channel9 Wiki: HomePage
http://channel9.msdn.com/wiki/default.aspx/MobileDeveloper.HomePage
CodeProject: TouchPictureBox, Slide Pictures with Fingers
http://www.codeproject.com/KB/mobile/TouchPictureBox.aspx
Satter Ramblings: Kiosk Pattern
http://www.hageeks.com/2007/04/kios...4/kiosk_pattern.html&hl=en&ct=clnk&cd=1&gl=us
Simple resource for Visual Basic .NET programming for Windows Mobile: http://ilovevb.net/Web/blogs/vbmobile/default.aspx
Anyone got any better resources? I'm much more experienced with Visual Basic and any resources for mobile-specific development would be appreciated.
Thumbs up for Basic4PPC. Been using it for a while and it's excellent for 50$
However I'd like to get the big tools (VS2008) but at 800$/2400$, it's a bit too pricey for a high school graduate. Is there a way to get it for under 400$? I know these tools are given for free in my college program, but it's in 1 or 2 years from now and I'd like to convert Gecko to VS while it's still a young project.
many thanks.
Thanks bro this is really useful for me and for many other
N1c0_ds said:
Thumbs up for Basic4PPC. Been using it for a while and it's excellent for 50$
However I'd like to get the big tools (VS2008) but at 800$/2400$, it's a bit too pricey for a high school graduate. Is there a way to get it for under 400$? I know these tools are given for free in my college program, but it's in 1 or 2 years from now and I'd like to convert Gecko to VS while it's still a young project.
Click to expand...
Click to collapse
Yes you can. https://www.dreamspark.com/
Sharp Develop will also do mobile.
Got it!
I dug a little deeper in the website and managed to find a lil' something for high school students. I'll try to get the school people to get the school verified (with the help of some daredevil teachers) and then I might get my access key.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
So no one knows any VB.NET (Visual Studio 2008 preferably) resources at all for WM6? That's a real shame, as Visual Basic definitely seems to be an underrated language, and I'm sure it would be a first step for many creative programming hobbyists to start mobile development.
I hope these resources help you out. They should be really good stuff.
VB RESOURCES:
How do I videos with VB .net with Windows Mobile:
http://msdn.microsoft.com/en-us/netframework/bb931340.aspx
VB .NET forum for developing mobile apps:
http://www.vbforums.com/forumdisplay.php?f=70&page=9&pp=40&sort=lastpost&order=desc&daysprune=-1
Programming with VB using .NET Compact Framework (Inlcudes chat stuff, SMS, systemstates, outlook, etc..)
http://www.code-magazine.com/articleprint.aspx?quickid=0609051&page=4
Reading an SMS using VB .NET
http://www.vbforums.com/showthread.php?t=525792
VB .NET codebank (Not specifically targeted at Mobile, but has some good stuff):
http://www.vbforums.com/forumdisplay.php?f=46
http://www.vbforums.com/forumdisplay.php?f=25
AddressOf (Good coding stuff for VB in general):
http://addressof.com/
C# to VB .NET converters (They ACTUALLY WORK!!!):
https://www.board4all.cz/showthread.php?t=142505
(err... I am not sure if this is supposed to be free. Mods, please check out. Thanks)
http://www.vbconversions.net/
http://www.tangiblesoftwaresolutions.com/
http://blog.crowe.co.nz/archive/2007/04/19/731.aspx
http://www.developerfusion.com/tools/convert/csharp-to-vb/ (FREE)
http://www.kamalpatel.net/ConvertCSharp2VB.aspx (FREE)
http://converter.telerik.com/ (FREE)
http://www.carlosag.net/Tools/CodeTranslator/ (FREE)
DOTNET for Devices:
http://www.dotnetfordevices.com/links.html
Retrieve outlook events from C#
http://www.eggheadcafe.com/software/aspnet/29412939/pocket-outlook-retrieve.aspx
Touch Shell Graphic Library:
http://forum.xda-developers.com/showthread.php?t=469781

What Free IDE To Start Developing?

hey guys,
first of all - I'm really not new to coding: I worked as programmer for a little firm and I'm quiet experienced to Delphi and Databases.
However - I'm now struggling around with this problem: My first steps into developing for Windows Mobile.
When I use Delphi: I just start the program, write down the code, compile - ready.
But its quite hard to just start coding for WinMo.
Until now I tried this IDEs
eTCL - awful, not an IDE, just a compiler?
MonoDevelop - first thought: looks nice, but then: its just for Unixe?
SharpDevelop - looks pretty nice, but doesnt compile for WinMo
embedded Visual Tools - not useful, i need a CE platform SDK - when I install that one for the WinMo 6 pro - I get the error: I need Visual Studio - wow, the circle is closed!
LUA - sounds good, too. but couldnt find a IDE
So, what am i doing wrong - is there no "download, install, run, compile" - solution? Additionally its important, that I dont want to produce old-school-looking programs with ugly interfaces. No "gray" cornered buttons but nice graphical interfaces, like in S2U2 for example.
can anyone help?
Probably it would be best to have a look at this thread:
http://forum.xda-developers.com/showthread.php?t=445396
It has a pretty comprehensive list of dev tools for WM.
yeah, thanks... thats the thread i've started from.
And I tried all the tools from the list, that are not freeware, and that are obviously able to compile hard code. So, script-languages like mortscript, are note very useful. And thats all... the most of them are commercial IDEs.
nickaat said:
yeah, thanks... thats the thread i've started from.
And I tried all the tools from the list, that are not freeware, and that are obviously able to compile hard code. So, script-languages like mortscript, are note very useful. And thats all... the most of them are commercial IDEs.
Click to expand...
Click to collapse
I love Basic4PPC, while it's not free it is a lot cheaper than Vis.Studio
its quick, easy and expandable
this was also done through B4P
http://forum.xda-developers.com/showthread.php?p=2905542
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Actually you can download a 90-day trial of Visual Studio 2008 and install it in a Virtual Machine...
nickaat said:
SharpDevelop - looks pretty nice, but doesnt compile for WinMo
Click to expand...
Click to collapse
I have used SharpDevelop to startup the development for MissedCallReminder. So what problems have you had whit this IDE?
nickaat said:
hey guys,
first of all - I'm really not new to coding: I worked as programmer for a little firm and I'm quiet experienced to Delphi and Databases.
However - I'm now struggling around with this problem: My first steps into developing for Windows Mobile.
When I use Delphi: I just start the program, write down the code, compile - ready.
But its quite hard to just start coding for WinMo.
Until now I tried this IDEs
eTCL - awful, not an IDE, just a compiler?
MonoDevelop - first thought: looks nice, but then: its just for Unixe?
SharpDevelop - looks pretty nice, but doesnt compile for WinMo
embedded Visual Tools - not useful, i need a CE platform SDK - when I install that one for the WinMo 6 pro - I get the error: I need Visual Studio - wow, the circle is closed!
LUA - sounds good, too. but couldnt find a IDE
So, what am i doing wrong - is there no "download, install, run, compile" - solution? Additionally its important, that I dont want to produce old-school-looking programs with ugly interfaces. No "gray" cornered buttons but nice graphical interfaces, like in S2U2 for example.
can anyone help?
Click to expand...
Click to collapse
SharpDevelop can compile to both the desktop and windows mobile - you have to install MS's Compact Framework 2.0 SDK to be able to compile to windows mobile (and select that option from within SharpDevelop)
I prefer Basic4PPC though - it's worth the $50.
What are you trying to develop?
If PSDK is a must, you can't use it without VS 2005 or VS 2008 _PRO_.
SharpDevelop is your best bet for .NET applications.
Perhaps it would be best if you wrote what you are planning to develop (roughly).
It could help with narrowing down the languages that can do it.
BTW for eTCL, you can write the code on the desktop and pass it over to your device. TCL is an interpreted language, not a compiled one.
Also, another (very) high level language you can look at is j2me (look at the netbeans IDE: http://www.netbeans.org/).

Using .NET Native on Windows Phone 8.1 Projects

In April, Microsoft released a preview of a framework for Windows Store apps that would convert .NET assemblies into the compiled native binaries of the target architecture (x64/ARM for now) in order for application optimization. This tool was named, .NET Native.
This tool itself will help protect your code and IP (a.k.a make it even harder for people to reproduce your code, but not impossible) and also increase the application's performance.
Getting Started:
To download .NET Native, Go to the home page and register/download the preview. Close all instances of Visual Studio 2013 (VS 2013 Update 2 is required) then run the installation package.
The .NET Native tools are configured to purely work with Windows Store apps only, but I figured that it SHOULD work with Windows Phone 8.1 projects since they both use WinRT (mostly). I decided to come up with a solution that would enable .NET Native for Windows Phone 8.1 projects manually since there's no way to enable it from Visual Studio.
Here's the PowerShell script that runs this. BE SURE TO RUN AS ADMINISTRATOR
I've tested this with VS 2013 Ultimate Update 2 running on Windows 8.1 Update 1 with the English language.
The syntax is as follows:
./enableProjectN.ps1 -solution "c:\pathtovsproject\wp81solution.sln"
The script will go through and determine whether you have VS 2013 installed, and whether the projects in your solution are WP 8.1 projects. It will then add the project config nodes that enable .NET Native.
For this to work, you MUST target your projects to the Release|ARM configuration in Configuration Manager.
The building of your project will take a little longer since it is running all of the tools to compile your C# into the native binaries . The file size will go up exponentially, but the app will run faster.
Read through the Compiling for .NET Native page for complete information on how the .NET Native technology works and for any gotchas.
Happy compiling.
EDIT: I've noticed that my test app doesn't work. It wasn't the initial app I was testing with, but I found out why people are getting dependency errors during deployment. You have to include a C++ WinRT Universal Component in your solution and reference it from your main app, then the build will link up the dependencies needed and allow you to push it to your device.
Found a tiny issue with my .NET Native script for WP 8.1 You HAVE to run powershell from within the Developer Command Prompt for VS 2013, THEN run the powershell script. I didn't realize that I had made this script from within that environment and noticed that the essentially environment variables that I am using weren't there when calling PS regularly.
Nice share! Will try this at home tonight.
FabricioGS said:
Nice share! Will try this at home tonight.
Click to expand...
Click to collapse
Awesome! One thing to note for now. This will only work for projects that are sideloaded . The Store doesn't accept some of the DLL Imports that are added by the generated dlls.
snickler said:
Awesome! One thing to note for now. This will only work for projects that are sideloaded . The Store doesn't accept some of the DLL Imports that are added by the generated dlls.
Click to expand...
Click to collapse
Anything in particular?
Sunius1 said:
Anything in particular?
Click to expand...
Click to collapse
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
I am sorry but isn't ahead of time compilation the way .net apps have compiled to native on windows phone since 2011?
The compiler does produce MSIL assemblies, but these are compiled to native upon deployment, unless the dev side loads it and the package is created for JIT.
Has something changed in wp8.1?
As far as i know, .net native is only designed for windows store apps.
mcosmin222 said:
I am sorry but isn't ahead of time compilation the way .net apps have compiled to native on windows phone since 2011?
The compiler does produce MSIL assemblies, but these are compiled to native upon deployment, unless the dev side loads it and the package is created for JIT.
Has something changed in wp8.1?
As far as i know, .net native is only designed for windows store apps.
Click to expand...
Click to collapse
This completely makes Native binaries using a compiler that's just like C++. No .NET code whatsoever. The DLL that's generated contains the bulk of the code and the EXE just loads the entrypoint of the .DLL.
Yes, for now .NET Native is designed for Windows Store apps, but since WP 8.1 just happens to use the WinRT assemblies that .NET Native needs, it will actually work for WP 8.1 apps. The Store doesn't accept the particular native functions that were listed in the post above yet though.
I've attached a blank WP 8.1 project that I've .NET Native compiled. Peer into the .DLL using IDA Pro and you'll see what they did. Notice that none of these files are .NET assemblies, they are pure ARMv7 compiled PE files. The .NET Native precompiles to pure Native binary, not doing optimization on an assembly for the specific architecture.
Check out the .NET Native links I put in the first post as they explain more of what's going on.
I know what .net native is and how it is different from the usual .net compilation, I am just not so sure it is of any actual use on windows phone. I know a lot of people would kill to get this on desktop (well, they technically do, with ngen), but on windows phone, i really don't see the need.
It'll be faster to run, no memory overhead with the compilation and better protection of your code. I see it as very useful for those who want to code in C#, but have it fully compiled to native binary for the speed and execution time without having to use C++. I don't really see how it couldn't be useful, but to each their own I guess .
I just posted this because it was a cool tweak that I've seen some interest from in others.
Well, it's undeniably a cool find. I'm unsure of its usefulness, though.
Normal phone apps, even from the Store, still have the CIL binary code in them. This makes them much easier to reverse engineer, among other things.
On the other hand, a JIT (from CIL to native) can perform some platform-specific optimization, which may produce a faster-running binary than one which is compiled for a generic target. With that said, I don't believe that the Store apps actually get JITed on the phone - I *think* they are instead pre-compiled to native for each processor that is in common use, and the correct one is installed - so this performance improvement may already be present. On the flip side, while .NET Native does allow you to bypass the JIT startup time (I assume that's what you meant by "speed and execution time" since it still performs the other things, like dynamic memory management and so on, that slow down managed code...), so does the precompiled-at-the-store approach.
A clear downside of .NET Native is the large binaries it produces. That wastes space with a lot of install footprint, and may also cost memory (assuming the phone kernel retains the page combining feature of NT6.2 and higher on the desktop, this impact could be minor or it could be massive depending on whether the chunks of code from the .NET framework are compiled in aligned on page boundaries and thus suitable for combining). On the other hand, there's no need to keep both the CIL and the native code in memory at once, so it could save some RAM too.
Anyhow, you're getting something that may actually run slower (all the downsides of managed code at runtime, none of the advantages of JIT) without any faster startup than is already available from the Store. It makes bigger downloads and uses more install space, and may also cost extra RAM at runtime (or may not). Unless you really want to use a managed language in a hard-to-reverse-engineer way - which is admittedly a common goal, as evidenced by all the obfuscators out there - this doesn't seem like an advantage over the existing options.
GoodDayToDie said:
A clear downside of .NET Native is the large binaries it produces. That wastes space with a lot of install footprint, and may also cost memory (assuming the phone kernel retains the page combining feature of NT6.2 and higher on the desktop, this impact could be minor or it could be massive depending on whether the chunks of code from the .NET framework are compiled in aligned on page boundaries and thus suitable for combining). On the other hand, there's no need to keep both the CIL and the native code in memory at once, so it could save some RAM too.
Click to expand...
Click to collapse
^^ This was my only big concern.. The immense binaries.
Does this actually work for you on the device? For me, it adds bunch of references to Kernel32.dll, which obviously doesn't exist on the phone and in result it fails to even start.
Sunius1 said:
Does this actually work for you on the device? For me, it adds bunch of references to Kernel32.dll, which obviously doesn't exist on the phone and in result it fails to even start.
Click to expand...
Click to collapse
It worked for me when I tested on my phone (Lumia 1520/Cyan). I made this thread only after having it work on my device first. I tried it without the Cyan firmware first though.
snickler said:
It worked for me when I tested on my phone (Lumia 1520/Cyan). I made this thread only after having it work on my device first. I tried it without the Cyan firmware first though.
Click to expand...
Click to collapse
Strange. If I download your attached "Empty" app, and open the main .dll in Depends.exe, I can clearly see 2 references to kernel32.dll and one to ole32.dll.
Sunius1 said:
Strange. If I download your attached "Empty" app, and open the main .dll in Depends.exe, I can clearly see 2 references to kernel32.dll and one to ole32.dll.
Click to expand...
Click to collapse
Hmm, does it actually deploy and run for you though?
snickler said:
Hmm, does it actually deploy and run for you though?
Click to expand...
Click to collapse
Well, you posted naked files, not an app package. Making a package with makeappx and trying to deploy it with the AppDeploy.exe fails the deployment fails due to dependency check.
Sunius1 said:
Well, you posted naked files, not an app package. Making a package with makeappx and trying to deploy it with the AppDeploy.exe fails the deployment fails due to dependency check.
Click to expand...
Click to collapse
that IS the package made via Visual Studio when you click to prepare a Store app (which uses makeappx to generate the appx project). You're probably missing the VCLibs dependency on your phone (somehow).
Packaging doesn't INCLUDE the dependencies with the package manually. The VCLibs appx is on the file system if you have the 8.1 SDK though.
/facepalm. Since you posted it as a zip file, I actually thought you zipped up output folder, instead of building app package and then renaming.
However, it will still not deploy for me. I do have VCLibs, and even putting them next to the appx file fails the deployment process. Anyway, I'll try some more stuff to see if I can get it to work.

Categories

Resources