Announcement

Collapse
No announcement yet.

XP Problem

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • XP Problem

    Hello there

    I am currently running a PBDos3.5 program which shells out to
    call a PBCC3 program to enter some information on a graphic
    screen, this works ok on 95/98 but does not work under XP Home.

    The PBCC3 program seems to start but then reverts back to the
    calling program and displays a 'B' on the screen, I have two
    other PBCC3 programs that work well under XP and so does the
    rest of the PBDos programs.

    Does anybody have any ideas.

    Robert



    ------------------

  • #2
    The PB/CC app is displaying a separate GUI window right? How are you handling the child/parent relationship between the console and the GUI window?

    How much, if anything, of the PB/CC app actually gets run, or does it not start up at all?

    If you substitute another simpler app for the PB/CC app, for example, one that simply sends some text to the console screen, does the SHELL operation work then?


    ------------------
    Lance
    PowerBASIC Support
    mailto:[email protected][email protected]</A>
    Lance
    mailto:[email protected]

    Comment


    • #3
      One more thing... if you examine the Properties of the PB/CC app from Windows Explorer, try altering the Win95 Compatibility setting and see if it alters things at all.



      ------------------
      Lance
      PowerBASIC Support
      mailto:[email protected][email protected]</A>
      Lance
      mailto:[email protected]

      Comment


      • #4
        Hi Lance

        As the XP computer is not close to me it takes some time to try
        things out.

        I have tryed setting the win95 compatibilaty but it makes no
        differance, also tried ...

        Re-naming a smaller pbcc program but no change
        Re-naming a smaller pbdos program but no change

        So to me it points to the calling program being large and not
        allowing the pbcc to run, but this must be some differance with
        XP?

        My next test is to try and reduce the size of the PBdos calling
        program and see if that makes a difference.

        Going back to your first paragraph, I do a MEMPACK and then the
        SHELL out much the same as I do for DOSPRINT, should I be doing
        more ?.

        Many thanks

        Robert

        ------------------

        Comment


        • #5
          To maximize free memory, erase all unnecessary Dynamic and Huge arrays as the first step, then clear and/or reallocate all dynamic strings, then perform a MEMPACK.

          Clearing and reallocating dynamic strings may be required if the actual string segments are fragmented badly. You can tell this by carefully monitoring the FRE() results as the programs runs and manipulates data in dynamic strings.

          An example of maximizing memory might look like this:
          Code:
          ERASE d$() ' erase unwanted arrays first
          c$ = ""    ' clear strings that are not important
          z$ = "" 
          a$ = a$    ' reassign strings to themselves to shift to lowest string segment
          b$ = b$
          ...
          MEMPACK    ' Go!
          SHELL "pbccapp.exe"

          ------------------
          Lance
          PowerBASIC Support
          mailto:[email protected][email protected]</A>
          Lance
          mailto:[email protected]

          Comment


          • #6
            Does Ultrashell work in this case?

            Or is that another of the things that Microsoft has taken away
            from us now with PB 3.5 for DOS?


            ------------------
            Mike Luther
            [email protected]
            Mike Luther
            [email protected]

            Comment


            • #7
              Lance

              Thanks for that I'll give it a try.

              Robert


              ------------------

              Comment


              • #8
                Hello Mike

                Whats Ultrashell??

                Robert

                ------------------

                Comment


                • #9
                  UltraShell is a commercial product that increases the amount of memory
                  available to DOS programs that you SHELL to from PB/DOS. You can find it
                  at Information Management Systems: http://infoms.com/

                  This won't help you with SHELLing to Windows programs, such as programs
                  compiled by PB/CC, however. Windows programs don't run in the DOS memory
                  arena. The only case where you might expect UltraShell to help, there,
                  is if you don't have enough memory to SHELL at all-- unlikely.

                  You might want to add some logging code to your PB/CC program, so you
                  can see whether it is really starting up properly and, if so, how
                  far it gets before exiting.

                  ------------------
                  Tom Hanlin
                  PowerBASIC Staff

                  Comment


                  • #10
                    Actually Tom, the amount of free memory <U>does</U> matter when launching WIN32 apps via SHELL, and UltraSHELL is a fine solution for this delemma, even for launching Win32 apps.

                    The internal implementation of how DOS handles the launch of WIN32 apps is not 100% clear, but my tests definitely show that DOS attempts to at load at least the DOS-loader portion of the EXE file, at which point it finds it to be a Win32 app, so passes it over to Windows to launch as a Win32 Protected Mode application, loaded and running outside of DOS memory.

                    IMHO, UltraSHELL is one of the best add-on's for PB/DOS, no doubt about it.

                    ------------------
                    Lance
                    PowerBASIC Support
                    mailto:[email protected][email protected]</A>
                    Lance
                    mailto:[email protected]

                    Comment


                    • #11
                      Got it covered, sir.
                      The only case where you might expect UltraShell to help, there,
                      is if you don't have enough memory to SHELL at all-- unlikely.
                      Could happen, to be sure.

                      ------------------
                      Tom Hanlin
                      PowerBASIC Staff

                      Comment


                      • #12
                        This may be way off base, but I eliminated some screen
                        problems by using Lucida Console fonts instead of raster
                        and also making sure the screen/buffer size is 80 x 25.


                        ------------------
                        How long is an idea? Write it down.

                        Comment


                        • #13
                          I would just like to thank everybody for your help.

                          I am going to order a copy of UltraShell as that seems the best
                          way to tackle the problem, reducing the size of my calling
                          program would be a big job.

                          Once again many thanks to everybody


                          Robert

                          ------------------

                          Comment

                          Working...
                          X