Re: HKLM\Init and MFC Application (further clarification)



Paul,

Here's what I did to try it some other way. I just deleted the MyMFCShell
project in PB altogether. I modified the project.bib file in PB and added
this line:

MODULES
MyMFCShell.exe "c:\somedir\MyMFCShell.exe" NK

With my registry entries removed (and everything re-sysgened), I boot up
into explorer. Then I go to the windows folder via my device and have it
show all the files there. Double-clicking on MyMFCShell.exe then leads back
to the DEBUGCHK failure I mentioned about paging in from uncompressed R/O
module.

Next, I changed the .bib file line to:

MyMFCShell.exe "c:\somedir\MyMFCShell.exe" NK C

since the message had something to do with compression. This time, PB
prompts me for the directory in which it can find the executable. When I
supply it, the application runs correctly.

As far as the registry entry, I've used the remote registry editor on the
device and noted that my "Launch50" entry was really there. Perhaps the
problem I was having had something to do with PB needing to prompt me for the
location of the executable?

I'm still bewildered, but appreciative of your help so far. Thanks again.
--
Jay Daniel


"Paul G. Tobey [eMVP]" wrote:

> Can you run the program some other way after the unit has booted fully, just
> to be sure it works?
>
> The 50 not found thing sounds like some other Init item is dependent on 50,
> but there's no 50 in the registry. I assume, since it looks like the
> program is starting, that you've checked reginit.ini to verify that the
> entry is present (and that your hardware is using the default registry)...
>
> Paul T.
>
> "Jay Daniel" <theinitialJandthenthenameDaniel@xxxxxxxx> wrote in message
> news:4B55D333-233B-48CA-9668-51B32D7A05BF@xxxxxxxxxxxxxxxx
> > Paul,
> >
> > Thanks for the advice. I actually DO compile the program in EVC. The
> > project I created in PB, I specified as "NOTARGET" so it basically just
> > exists to copy the application from my EVC build directory as well as the
> > .reg file into the flat release directory. Also as I mentioned, I have
> > tried
> > both with an without adding it to the modules section of the .bib file for
> > that notarget project without success in either case.
> >
> > I agree that the problem with it failing from PageInFromROM could have
> > something to do with the MFC dll, but I'm not sure how the "50 was not
> > found"
> > error could be. I'm signalling to the kernel that the application was
> > started by calling an API function ::SignalStarted, so I would think the
> > MFC
> > dll wouldn't be involved in that.
> >
> > Any other possible suggestions?
> >
> > --
> > Jay Daniel
> >
> >
> > "Paul G. Tobey [eMVP]" wrote:
> >
> >> You might try compiling your MFC application with eVC, not PB, and just
> >> add
> >> it to your Project.bib or whatever to put it into the OS. This also
> >> might
> >> be a problem with the MFC DLL (I assume you're using the MFC as a DLL
> >> right?), rather than your application itself.
> >>
> >> Paul T.
> >>
> >> "Jay Daniel" <theinitialJandthenthenameDaniel@xxxxxxxx> wrote in message
> >> news:2D1B7C8A-7A06-4A3C-8DDA-77A62B69F166@xxxxxxxxxxxxxxxx
> >> > My apologies... I left out some details from my question which (in
> >> > retrospect) might be somewhat important.
> >> >
> >> > As it was generated, the MyMFCShell project from platform builder
> >> > didn't
> >> > work right for me. For some reason, when the system tried to run
> >> > MyMFCShell.exe, I would get a DEBUGCHK failure in the "PageInFromROM"
> >> > function in loader.c. The message was: "Paging in from uncompressed
> >> > R/O
> >> > page
> >> > from XIP module -- should've never happened."
> >> >
> >> > If I REMOVE the entry for MyMFCShell.exe from the .bib file, then I get
> >> > to
> >> > where I was mentioning before (50 was not found messagebox).
> >> > Alternatively, if I add a "C" qualified to the .bib file for this
> >> > module,
> >> > I
> >> > aso get to the 50 was not found message.
> >> >
> >> > I don't know if that information will be useful for figuring out what's
> >> > going on, but I'm completely without any more ideas. Again... thanks
> >> > for
> >> > any
> >> > help.
> >> >
> >> > --
> >> > Jay Daniel
> >> >
> >> >
> >> > "Jay Daniel" wrote:
> >> >
> >> >> I'm new to Windows CE development, so I apologize if I'm overlooking
> >> >> some
> >> >> very obvious things, but I'm having some difficulty in my initial
> >> >> attempts at
> >> >> customizing a WinCE OS image.
> >> >>
> >> >> I'm using WinCE 5.0 and Platform Builder as well as EVC++ 4.0SP4.
> >> >> What
> >> >> I've
> >> >> done is create an MFC application in EVC. I'm trying to use this as a
> >> >> shell
> >> >> replacement instead of explorer.exe since ultimately I'll be making a
> >> >> dedicated HMI device.
> >> >>
> >> >> I created a new platform in Platform Builder and added the options I'd
> >> >> need
> >> >> for my app (standard SDK, MFC, etc.). I've used this to create and
> >> >> export an
> >> >> SDK for EVC which is what I built my MFC application against. That
> >> >> builds
> >> >> and runs on the emulator from EVC.
> >> >>
> >> >> Next, I created a new project called MyMFCShell in platform builder.
> >> >> I
> >> >> modified the sources file and changed targettype to "NOTARGET." I
> >> >> created a
> >> >> MyMFCShell.reg file as follows:
> >> >>
> >> >> IF IMGMFCSHELL
> >> >> [HKEY_LOCAL_MACHINE\Init]
> >> >> "Launch50"="MyMFCShell.exe"
> >> >> "Depend50"=hex:14,00,1e,00
> >> >> ENDIF
> >> >>
> >> >> Finally, I changed postlink.bat to copy the executable from my evc
> >> >> output
> >> >> directory to the flat release directory, along with the .reg file.
> >> >>
> >> >> At startup, I see the kernel launching the application, but instead of
> >> >> coming up properly, I see a message box that says "50 was not found."
> >> >> Note
> >> >> that I DO call ::SignalStarted(_wtol(m_lpCmLine)) from InitInstance()
> >> >> in
> >> >> MyMFCShell. Also, if I change the launch key from Launch50 to
> >> >> Launch99
> >> >> say,
> >> >> the message box says "99 not found." I've even tried calling
> >> >> SignalStarted(50) directly in case the command line was somehow
> >> >> getting
> >> >> messed up by some default behavior in CWinApp, but to no avail.
> >> >>
> >> >> Any help would be greatly appreciated.
> >> >>
> >> >>
> >> >> --
> >> >> Jay Daniel
> >>
> >>
> >>
>
>
>
.



Relevant Pages

  • Re: HKLMInit and MFC Application (further clarification)
    ... I actually DO compile the program in EVC. ... > something to do with the MFC dll, but I'm not sure how the "50 was not ... >> be a problem with the MFC DLL (I assume you're using the MFC as a DLL ... >>> If I REMOVE the entry for MyMFCShell.exe from the .bib file, ...
    (microsoft.public.windowsce.platbuilder)
  • Re: HKLMInit and MFC Application (further clarification)
    ... I actually DO compile the program in EVC. ... something to do with the MFC dll, but I'm not sure how the "50 was not found" ... > be a problem with the MFC DLL (I assume you're using the MFC as a DLL ... >>> I created a new platform in Platform Builder and added the options I'd ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Program not working
    ... Well, I think that eVC should download the MFC DLL, if it's not present on ... I put just the .exe file on ...
    (microsoft.public.windowsce.app.development)
  • Re: Further Attempts
    ... > include an MFC app built in EVC into my operation system image. ... >> I created a new platform in Platform Builder and added the options I'd ... if I change the launch key from Launch50 to Launch99 ...
    (microsoft.public.windowsce.platbuilder)
  • Re: HKLMInit and MFC Application (further clarification)
    ... You might try compiling your MFC application with eVC, not PB, and just add ... > If I REMOVE the entry for MyMFCShell.exe from the .bib file, ... >> At startup, I see the kernel launching the application, but instead of ...
    (microsoft.public.windowsce.platbuilder)