hahah, yes an x86 binary would indeed cause problems.
cellcore.dll is indeed available on ce5, and ce4.x as well.  Its not
part of the OS, but rather part of the PPC/PPCphone/smartphone platforms
(and you dont' have the source to it from platform builder).
It has to do with functionality intended for phone operations (hence the
name) but it also provides the 'Windows Connection Manager', which is
intended to 'simplify' netwroroking by automatically connecting and
disconnecting stuff.  It causes me much heartache and sorry because it
likes to terminate the network link used fo rthe tunnel when the TAP
gets connected, thinking that TAP is a 'cheaper' connection than the
underlying link.  It doesn't know that TAP is dependent on the
underlying link, so I have to do some hackery to keep the underlying
link open.

Regarding 'conventional' networking, this just means making connections
not-through-connection-manager, and doesn't mean you need to do any
special research.  I just made that term up to distinguish from using
connection manager to establish connections.  You can just establish
your wireless link in whatever way is normal, and carry on like you
would in a desktop scenario.

Winintet.dll is used for some of the httpproxy support, and you may be
able to conditionally compile that support out to remove that dependency
if you want.

You should be on your way.

-----Original Message-----
From: jonathan openvpn [mailto:jonathan.open...@gmail.com] 
Sent: Thursday, May 28, 2009 9:30 AM
To: dave
Cc: openvpn-devel@lists.sourceforge.net
Subject: Re: [Openvpn-devel] CE port needed DLLs


Hi Dave.

This morning I've been able to solve the error and began to debug the
application. There were two reasons for my problem:

 - the wininet.dll file i had was compiled for x86 platform. I've found
a thumb file version in internet. 
 - I have removed the code related to the connection manager (files
openvpn.c and wince_portstuff.c) and the cellcore.lib link reference. 

Also, in internet i have found that cellcore.dll is available in Windows
Mobile and Windows Embedded CE 6.0 but not in Windows CE 5.0
At this point, as you have said, i will need to do networking "in the
more conventional way", in spite of i don't know what it means yet, and
how to do it...

To sum up, my problem was i didn't have the correct platform libraries,
plus a big piece of ignorance...

Can you give me a link or reference to somewhere I could get information
about possibilities to solve my networking needs without the connection
manager?

Thank you very much for your help. It has been very useful. Probably
i'll come back soon with some new questions and doubts. I hope some day
i'll be able to solve someone questions too...

Best regards,

Jonathan.



2009/5/28 dave <d...@ziggurat29.com>


Sure, you're welcome.  Thumb should not fundamentally be a problem
provided the platform and tools support it, and it sounds like in your
case it does.

Your assumptions about what you need are correct, I believe (i.e., you
don't need the gui).  You may want to inspect the code, however, because
there are routines for installing and loading the TAP driver that may be
of interest.  They are in taputil.h,.c

cellcore.dll is used to provide the Windows Connection Manager stuff,
and in openvpn.exe this in openvpn.c, around line 203, and around line
284.  I should have conditional-compiled that as an option, but I
didn't.  Similarly the support routines are in wince_portstuff.c at line
1631 through the end, and they can go, too (actually if you remove those
first and compile, the compile should fail and you can find if there was
anything I missed, but that should be it).

Generic CE platforms don't use the Windows Connection Manager and do
networking in the more conventional way, so you can probable do without
it, and remove the cellcore.lib from your link step.

Assuming your error message really means 'missing dlls' instead of
'invalid binary' then you should be better off.

Again, if you want to send me your compiled binary, I can inspect it
more closely if that is useful.

-Dave


-----Original Message-----
From: jonathan openvpn [mailto:jonathan.open...@gmail.com] 

Sent: Thursday, May 28, 2009 1:56 AM
To: dave
Cc: openvpn-devel@lists.sourceforge.net
Subject: Re: [Openvpn-devel] CE port needed DLLs


Hello.

First of all, thank you for the quick response.

We have other applications running on the Windows CE distribution and
the linker option "MACHINE" is set to "THUMB".
We are using a custom developed board, and we develop our applications
through Visual Studio 2005.

We only need to stablish a connection to a VPN server without need of a
GUI, all configuration must be transparent to the user. Therefore I
think we only need the openvpn executable and TAP_CE driver. If i'm not
wrong, the ovpncmgr module is to provide a GUI for the openVPN client.
Is that correct?

When no dll is provided, and I try to debug the application from Visual
Studio connected to the device, i get the message: "An error occurred
that usually indicates a corrupt installation (code 0x8007007e). If the
problem persists, repair your Visual Studio installation via 'Add or
Remove Programs' in control Panel"
Some webs refer to that error like some archives are missing. When I put
the dlls you have listed below, the error changes to: "openvpn is not a
valid WindowsCE application". I suspect that some of the dll may not be
correct for my platform. Could it be the source of my problem?

I have not been able to find the cellcore.dll for our platform. Does it
mean we cannot use the connection manager functionality? I have read in
some forums that this functionality is not present on Windows CE...

Sorry for my ignorance, I am pretty new on Windows CE.

Your help is so much appreciated. Thank you very much.

Jonathan.



2009/5/27 dave <d...@ziggurat29.com>


That message usually means the binary is hosed, and I believe missing
dlls give a different message.
Are you sure Thumb is correct for your platform?  Are you using a
consumer device like a pocket pc phone, etc, or is it a custom board?

I ask that because the existing code does use some functionality
peculiar to the pocket pc (phone) that is not generally available on
other platforms, yet the SDKs ofen include the headers and import libs,
allowing you to successfully compile, but then you can't run it on the
target device.

When you say 'client application' are you meaning just the gui, or the
whole entire set of programs (i.e., the TAP driver, the openvpn
executable, and the gui).

You can use DUMPBIN to find the dlls from the exe, and also inspect the
header to see the cpu configuration.  Here is a short list, if it helps:

openvpn:
*  coredll.dll
*  w2s.dll
*  iphlpapi.dll
*  wininet.dll
*  ole32.dll
*  cellcore.dll

tap-ce:
*  ndis.dll
*  coredll.dll

ovpncmgr:
*  iphlpapi.dll
*  toolhelp.dll
*  cellcore.dll
*  ole32.dll
*  mfcce300.dll
*  coredll.dll
*  winsock.dll

Your build may (will) differ depending on your platform, because your
platform builder may have put some of these features in different dlls.
That list was for PocketPC.

Now, the cellcore.dll, you may not have on other platforms.  It is
needed for supporting Windows Connectin Manager, and you can surgically
cut out that functionality if your platform doesn't have it.  Most of
the rest is fairly standard.

Before doing surgery, you may wish to re-check your assumptions.  Also,
if you wish to zip up your problem binaries and send them to me
directly, I will do a quick inspection for you.


-dave

-----Original Message-----
From: jonathan openvpn [mailto:jonathan.open...@gmail.com] 
Sent: Wednesday, May 27, 2009 5:36 AM
To: openvpn-devel@lists.sourceforge.net
Subject: [Openvpn-devel] CE port needed DLLs


Hello.

I'm triying to execute a Windows CE 5.0 porting of openvpn client
application. I've been successful on compiling it but when i try to
execute i receive the message: "openvpn is not a valid WindowsCE
application".

I am compiling to ARM-Thumb architecture. I suspect there is a problem
with needed DLLs.

Could anyone tell me wich DLLs are needed and where could i get them?

Thank you very much.




Reply via email to