Hi,
>or does the O/S automatically do something like:
>
[quoted text clipped - 3 lines]
> gx.dll
> 4) If found, load the gx.dll found within the application folder
Yes the loader does something a little bit like this, except the ordering is
slightly different. For example it will detect the version found in your
application folder before the one within the windows directory, and it's a
little more complicated if a module with the same name has already been
loaded into the process etc.
> Would anyone happen to know what goes on behind the scenes (or at least
> what
> Microsoft expects us to do) in the case of a missing gx.dll?
According to the Designed for Windows Mobile logo certification guidelines
(http://download.microsoft.com/download/8/d/1/8d1e9ac8-4a05-4480-8c91-3b83f74cd63
0/Designed%20for%20PPC_Handbook_Oct2006.pdf)
"Any .DLL files used in the installation of the application on the Windows
Mobile-based Pocket PC platform should only store "shared" files/DLLs in the
Windows directory, and every other file in the application's own directory
(which may be modified by the end user).
Additionally, if the application installs GX.dll (GAPI), it must install
that DLL in the application directory, not the Windows directory.
Applications that use GAPI must install this DLL."
So I would take that to mean Microsoft recommends
A) always distributing GAPI with your application CAB file
B) you should install it into your application folder and not \windows.
At least this is what would be required in order to use the "Designed for
Windows Mobile" logo for your application, which theoretically is a sign of
applications that meet certain implementation standards.
This will mean your app uses the version of GAPI installed by your app and
not the version that may be present on the device already.
Hope this helps,
Christopher Fairbairn
Chris Writely - 28 Feb 2008 05:17 GMT
> Hi,
>
[quoted text clipped - 3 lines]
> little more complicated if a module with the same name has already been
> loaded into the process etc.
Thanks for the clarification on this. I was hoping to get the details on
what's done in the background. :)
> So I would take that to mean Microsoft recommends
>
> A) always distributing GAPI with your application CAB file
> B) you should install it into your application folder and not \windows.
Makes sense. But another question then: What do you/Microsoft mean when you
say "install"? Does this just mean to basically store the file in the same
folder as my application? Or do I need to register it somehow with the O/S?
(The "Designed For Windows Mobile" info was actually one of the other quotes
I wrote down... I wasn't quite sure what they meant by "install" when I read
it.)
Thanks again,
Chris Writely
> Hope this helps,
> Christopher Fairbairn
Christopher Fairbairn - 28 Feb 2008 22:01 GMT
Hi,
> Thanks for the clarification on this. I was hoping to get the details on
> what's done in the background. :)
You can get a pretty good overview of the process from the documentation for
the LoadLibrary API. This is available on MSDN at
http://msdn2.microsoft.com/en-us/library/ms886736.aspx.
See for example the list near the bottom of the article.
> Makes sense. But another question then: What do you/Microsoft mean when
> you
> say "install"? Does this just mean to basically store the file in the same
> folder as my application? Or do I need to register it somehow with the
> O/S?
I take "install" in this case to mean simply placing the DLL in the
application folder. As far as I am aware there is no additional registration
or installation process required.
Hope this helps,
Christopher Fairbairn
Chris Writely - 29 Feb 2008 20:16 GMT
> You can get a pretty good overview of the process from the documentation for
> the LoadLibrary API. This is available on MSDN at
> http://msdn2.microsoft.com/en-us/library/ms886736.aspx.
>
> See for example the list near the bottom of the article.
Thanks for the link, Christopher. I was wondering if there was some secret
book that I didn't know about or something... I should have figured it'd be
on MSDN. :)
> I take "install" in this case to mean simply placing the DLL in the
> application folder. As far as I am aware there is no additional registration
> or installation process required.
That's good to hear, I really didn't want to have to force linking to gx.dll
for this. It seemed kind of unnecessary.
Thanks again,
Chris Writely