DLL Projects - Windows Mobile Development and Hacking General

Hi all,
Generaly, I am Symbian programmer but i will have a look at Pocket PC side... so I am not bloody beginner :wink:
Jep.. I wrote/clicked a C# application with .Net 2003 (very comfortably!!). I saw fast that I have to use C++ to reach interesting APIs.
I know its possible to call (C++) DLL from C# so I can let the frontend in easy C# and can use C++ to get more functionality.
Other than for C#, I couldn't find a "Smart Device" template for C++ in .Net 2003! Someone can tell me, which kind of template I have to use for programming a PocketPC C++ DLL? Is it in .Net 2005?
Thanks a lot!
BR eidelen

Hi,
I thin VS.NET 2003 can only produce managed and x86 native code, so writing for the arm platform was not build in. Your solution would be to use Embedded Visual C++4 which is available free from Microsoft, or to answer your second question I *think* VS.NET 2005 does include the ability to write unmanaged code for smart devices.
Paul

Hi Paul,
Thank for your fast answer! I found it in ".Net 2005" and first DLL-prototypes running!
Now I have some other problems concerning callbacks from native unmanaged DLLs, but I will create a new topic about it.
Thanks a lot!
BR Adrian

Related

C# vs. C++ questions

Hi all,
I am developing applications in C# using Visual Studio 2003.
While my need to create some specific applications, it seems some applications seems virtually impossible to develop using C#.
For instance, I cannot create a SIP (soft-input panel) using C#, and I haven't found a way to develop a today plugin using C#. These applications seems only to be developed using C++.
I know C# is a managed code, as opposed to C++ which isn't by default.
Are the differences between C# and C++ applications -- managed vs. unmanaged code -- the reason I cannot develop a today plugin or SIP, or is there a way I can use C# to achieve this?
I'm using C# since it somewhat resembles the Java language I'm familiar with, and learning C++ would take a while.
Any thoughts and help would be much appreciated!
With kind regards
the syntax is not all that different between java c# and c++ even even ansi c
suppose some difference is what platform you would be programming to
maybe .net which i asume most c# programmers use cant make todayplugins
not sure
you can program .net from c++ aswell if you like or you could program win stk directly or miniMFC
a language is just syntax and speed difference in some cases
how much learning is needed is all about the platform you are developing to
Rudegar said:
the syntax is not all that different between java c# and c++ even even ansi c
suppose some difference is what platform you would be programming to
maybe .net which i asume most c# programmers use cant make todayplugins
not sure
you can program .net from c++ aswell if you like or you could program win stk directly or miniMFC
a language is just syntax and speed difference in some cases
how much learning is needed is all about the platform you are developing to
Click to expand...
Click to collapse
Well, applications created with C# must use the .NET Compact Framework if I understand correctly, and since C# (or .NET) applications require the use of a Common Language Runtime, I can image some applications simply cannot be developed.
BTW, the platform I'm targeting to is my much beloved MDA-II
What I'd like to know is, is it possible to create a Today Plugin or a SIP using C#? Or should I switch to C++?
yes i know you mean xda2 but i ment platform as in .net or mfc or pure win stk
not sure if it's possible to make today stuff and other shell stuff from .net
but what i'm trying to say is that you can make .net from c++ aswell and there the difference between c# and c++ are not all that great
if you have to do pure win stk it's a whole other ball game as in how much they are the same
you could ask zendrui the maker of phonezenprofile he's programming in the pure stk and he prob knows if you can assess those today and shell stuff from anywhere else
Ok, thanks for the tip, I will ask him
Sorry but I never looked on the c# as all the applications developped with .net for PocketPC are slower and as I well know c++
So I don't know if it is possible to create a today plugin or access SIP with c# sorry ...
But if you know a little c++ you can get many examples how to create easily a today plugin and for sure access SIP is really really easy with c++ but I suppose that it should be easy to with c# ...
Link to SIP in C#
This might help you out. I just googled for "pocketpc sip c#".
http://www.c-sharpcorner.com/Code/2002/May/SIPOnPocketPC.asp
D.
Hmm that article just gives you information about showing the SIP from your C# app.
I have a feeling, it's going to be easiest to write a SIP in C++, mainly because you're implementing COM interfaces, but also because it's so fiddly and the only examples I've ever seen are in C++.
Best one I've seen is here (also covers today screen items):
http://www.woodslane.com.au/net/titles/samp0735614431.html
.NET CF
A more general question. I have just started looking at using C# (I too am a Java developer) and Visual Studio .NET 2003 to develop apps for the Pocket PC. Help & samples in VS.NET are rather sketchy, and info on MSDN websites is very scattered. What are some good resources to get started? Any books recommended? Any good web resources?
What about MFC?? Can we include MFC on a today plugin DLL?
Because at least CString would sure come handy!! :?
Hello everybody!
I recently went through a learning experience writing a today plug-in and found out there's nothing to it. Basically it’s a dll that needs to export 2 (1 if no options) functions and create a simple window.
You can certainly use MFC, and MSDN has an article on how to create a today plug-in using .NET: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnppcgen/html/TodayScrn.asp
As for sip, that is more complicated, sorry I can't help you there.
I tried the c# today pluggin that microsoft made to try and show their language is usefull. It needed two seperate projects, one in vis studio 2003 and one in evc. i got it to work but it was way too complicated. As levenum said, its not that hard in c++. The responsiveness of their example was very slow compared to native ones. The up side was that it created a today item that lets you display data like pie. I did not experiment other than to modify the background colour to see if it worked.
I think the compact framework is a bit too compact. The features don't help enough with device specific programming, but its good for a lot of other stuff like gui's.
Is there any other way to creat today plugin application instead of using C++ and .net host. Is .net 2.0 support it?
Is there any other way to creat today plugin application instead of using C++ and .net host. Is .net 2.0 support it?
I think this topic is pretty much dead, but the answer is that C# does not support exported DLL functions. Since Today plugins and new SIPs require libraries with exported functions, it's not possible to write either entirely in C#. You have to at least have the C library to export the functions, and that's why the MS article goes about it that way.
This class will show/hide the sip in C#:
Code:
public class Sip
{
[System.Runtime.InteropServices.DllImport("coredll.dll")]
private static extern int SipShowIM(SIPStatus i);
private enum SIPStatus
{
SIPF_OFF = 0,
SIPF_ON
};
/// <summary>
/// Show the SIP.
/// </summary>
public static void Show()
{
SipShowIM(SIPStatus.SIPF_ON);
}
/// <summary>
/// Hide the SIP.
/// </summary>
public static void Hide()
{
SipShowIM(SIPStatus.SIPF_OFF);
}
}

embedded VB question

Hi,
Before people reply with "use VC++ instead": I don't have the time and willpower to look into VC++ programming.
Anyway, I was fiddling around with embedded VB and the lack of DoEvents is a great limitation!
Is there any way around?
Also, is it just me, or is VB extremly slow on PocketPC?
Finally, all I got was a file with *.vb extension, which would get executed inside the PocketPC. Shouldn't it be possible to compile to *.exe?
Thanks,
vma
i think the new vb .NET is about as fast and have the same support of evens and such as C# .NET
of cause both would still be slower then pure win32 in c++

How to develop an interface software for Universal

Dear All,
I currently have a genetic algorithm which is coded in C,C++,VB,Java and Fortran. I am running a DAQ (data acquisition software) which captures the vibration signals and saves it as a txt doc. What i would like to do is then take this data and post-process it using the genetic algorithm. How can i implement this using my Universal? Somesort of an interface software that i can download to my Universal so that it then imports the .txt files and runs the neccessary sequences and displays the results.
Any advise is greatly appreciated,
with my best regards,
Ravi
looking for a IDE to developer such an application
or a compiler for the pocketpc
if first you can get embedded visual studio or
just visual studio 2003 or 2005 if you want c#
if you want a compiler for the pocketpc you can get
a c# compiler for pocketpc
or a c++ compiler ggc
Thanks for the input
Hi Rudegar,
Once again...you have come to my aid : ) Thanks alot for the suggestions. I will check up on it. Will give you a shout if i am unclear about it....hope its ok with you..
Once again many thanks for your suggestions
regards,
Ravi

newbie: creating appl. for xda pocket pc 2002

hello,
glad that i found this forum
new user of an xda Wallaby, i got a few questions,i would be happy if someone could help me. so sorry again for my boring questions.
is the pocket pc software separated from the phone software ? possible to get into the phone software?
i have little experience with basic and c. which development kit is okay , i saw Visual C++ for CE but thats a big cake for me, i would shot me in this, but only if this is the right thing. i look for a language with a phone software library, (and sorry for my bad english)
Thank You
edlin
Welcome to the forum.
First of, please don't worry about language here. This is a global forum and we have people from all over the world here.
Second, do you have any experience in programing for desktop windows?
Programing for Windows Mobile (it is actually a bit different from clean Windows CE) is basically Win32 programing so you need to familiarise yourself with that.
Now, the thing is that Pocket PC 2002 i a bit of an outdated system. Forunately, it is still supported.
What you need is a collection of free tools from Microsoft which you can download here. You also need Pocket PC 2002 SDK.
This collection includes 2 compilers eMbedded Visual basic and eMbedded Visual C++. I recommend using C++ as it is more powerful and doesn't need that pesky run time support VB uses. If you have any experience with Visual Studio 6 you will find the tools easy to get used to.
As for the 'phone software' it is part of windows, but using it involves more advance programing. First of you need to know how to use Win32 API. You can find documentation on TAPI (Telephony API) and RIL (Radio Layer Interface) in MSDN.
Good luck!
hello levenum,
thank you for your "Welcome"and Your helpful posting.
i first thought that it would perhaps be easier to go with an earlier version like CE 3, but then i have more troubles with cpu specific code?
i only tasted borland c 2.0 for dos and boland c++ 5.i saw a developers interface from a friend, Visual C++5, with Extension for Writing CE Applications,
I followed Your Download-Links, could not download Pocket PC 2002 SDK cause WGA Plugin failed i surf with a mac. i will find a solution )
so i will think on your words "First of you need to know how to use Win32 API" and step into Visual C++ first, thats a live step.
Thanks for Your Helpful Hints.
Greetings,
edlin

Software Development

Can I develop software to WM5 but no .Net frameworks ?
Of course!
In fact it is much better to use native code on WM devices because it is faster and takes up less resources.
If you already know C / C++ go to MS site and download the free eMbedded C++ 4 and the Pocket PC 2003 SDK (don't mind the OS version).
Also if you have VS 2005 download the WM 5 SDK and create a smart device project in C++.
1 cool think about .net though is i had a sudoko or whatever it's called
program for pda and the same exe workd on pc too
but all in all .net is a slow as java though on pocketpc the .net maybe better implemented then the java vm's
levenum said:
Of course!
In fact it is much better to use native code on WM devices because it is faster and takes up less resources.
If you already know C / C++ go to MS site and download the free eMbedded C++ 4 and the Pocket PC 2003 SDK (don't mind the OS version).
Also if you have VS 2005 download the WM 5 SDK and create a smart device project in C++.
Click to expand...
Click to collapse
hi levenum,
i have VS 2005 and WM 5 sdk installed.
well my problem is C++ which i never read seriously but i have a good
working base of C on which i had developed two simple game.
How can i implement the code in VS2005/WM5SDK with minimal
interaction of C++ ?
How can i get working base on VS2005/WM5SDK?
Can u suggest me a tutorial or any free book?
with c vs. c++ it's really much the same ++ is just an expansion with nativ class and other object orientented features
any c program should be able to compile using a c++ compiler
but i doubt you can write CE programs or even windows programs without using any kind of class related code
heck you cant even do that in basic (evil language) or c#
the internet is soo full of free programming stuff it's not even funny
buying paper books is a thing of the past imho unless you want to read while on the toilet and dont have a laptop or pda
http://www.brpreiss.com/books/opus6/
good googling for more
Actually, except for M$ nasty invention called "COM" there is nothing in Windows API that requires C++.
In fact I rarely use classes unless I am building an MFC app to save time.
Also, (can't remember the link for the life of me) but there is some way of accessing class objects in pure C using some struct tricks.
So basically you can leave fine without the ++, but you may need to work a little harder.
You should just create a basic smart device project. VS will generate a "hello world" app for you and you can see how it works. Moving from C to C++ should be very easy.
It's C# that is no longer a real programming language
P.S.: Did you know most of Win CE DLL are actually written with ANSI C?
levenum said:
Actually, except for M$ nasty invention called "COM" there is nothing in Windows API that requires C++.
In fact I rarely use classes unless I am building an MFC app to save time.
Also, (can't remember the link for the life of me) but there is some way of accessing class objects in pure C using some struct tricks.
So basically you can leave fine without the ++, but you may need to work a little harder.
You should just create a basic smart device project. VS will generate a "hello world" app for you and you can see how it works. Moving from C to C++ should be very easy.
It's C# that is no longer a real programming language
P.S.: Did you know most of Win CE DLL are actually written with ANSI C?
Click to expand...
Click to collapse
thanx,
i had already compleated "hello world"
and C++ is really not much away from me
actually i only have a single problem:
How can i get working base on VS2005/WM5SDK?
Click to expand...
Click to collapse
well i think it is more exactly Win CE API knowledge which i require.
How Do I Start Cooking Roms
I Know A Bit Of C++ ,how Do I Start Cooking My Own Roms
tawanda: first off - your question has nothing to do with this thread, if you have an unrelated question you should start a new thread BUT search first to make sure it was not asked and answered a 1000 times!
As for your question - cooking ROMs is not programming - it helps to know a programming language but what you really need to do is familiarize your self with the tools used to pack and unpack as well as dump and flash ROM images.
Note that these tools are different for different devices or at the very least need to be configured differently.
I recommend you start by reading the WiKi.
After some years of absence from the programming world I think now I've time enough to start again. I'm familiar (but a bit rusty) with assembler, C and C++, but I think I have start more or less from the beginning.
I already installed Visual Studio 2005 and the WM05 and WM06 SDK. Now I'm not sure whether I should use C# or C++. The big difference is that C# needs compact framework?
Your question is mainly a matter of personal preference.
Here is my opinion on C++ vs. C#:
C++ advantages:
- Native code is faster than .NET
- Easier access to Win32 APIs
- Ability to write system components like keyboards and today plugins.
C# advantages:
- Saves on coding time
- Allows use of many .NET CF components to quickly accomplish complex tasks.
Please note that I am bias. I hate .NET and want nothing to o with it. Specially on mobile devices that do not have the processing power to spare for the .NET overhead.
I second levenum's recommendations -- I've been programming big Windows for 15 years and have managed to avoid .NET. Of course most of what I do these days is NDIS driver programming, so it's mostly straight C, with C++ for supporting user-mode code.
Avoid MFC -- it adds a bit of overhead which is OK for big Windows, but not for WM. If you're going to use a C++ framework, I highly recommend using ATL/WTL -- it's what MFC wants to be when it grows up.
I'm looking at my visual studio 2005 and wanting to covert my c# application to C++...
I clicked on a new project and i'm looking at the various options in Visual C++ for Smart Devices. There are a few to choose from... how do I know which one I want to choose?
ATL Smart Device Project
MFC Smart Device Application
Win32 Smart Device Project
MFC Smart Device ActiveX Control
MFC Smart Device DLL
Can you guys tell me the difference between those options and which I should use to develop for WM6?
Thanks,
Derek
imho then a good pro of c# vs. c++ is the nice object lib that .net give
mfc is pretty crap in every respect and if you do pure stk
it's more work to make it object orientated
"ATL Smart Device Project
MFC Smart Device Application
Win32 Smart Device Project
MFC Smart Device ActiveX Control
MFC Smart Device DLL"
depend on what you want to do
i mean DLL is not a program but a lib that other programs can access
but then today items are dlls
win32 is pure win32 stk where you pretty much have to do all the prev work to get your application up and running
mfc is microsoft foundation clases it's an somewhat dated object lib from ms which makes making an application faster it pretty much give you a dialog and let you place components such as button on it
ActiveX is an somewhat evil internet programming platform
atl http://en.wikipedia.org/wiki/Active_Template_Library
you can prob find more info about everything you want more info about
from wikipedia too
thanks for the info rudegar!

Categories

Resources