Re: DLL - entry point

From: Wilson Thomas (wilson_at_sinaisoft.com)
Date: 08/04/04

  • Next message: Wilson Thomas: "multiple exe"
    Date: Wed, 4 Aug 2004 17:21:20 +1000
    
    

    Thanks for the info. I have created multiple project like main project with
    code, all forms in another project and all reports in a third project. But
    it does not work as expected.

    E.g., to print a report "emp_list" report, I pass the parameter from the
    main program to the report exe, which contain a start up program and all
    reports included.

        DO allreports.exe WITH "emp_list"

    Strat up program in report exe is
    ------
            LPARAMETERS cReportName

            IF TYPE('cReportName') = "L"
                 RETURN
            ENDIF

            cReportName = ".\reports\" + ALLTRIM(cReportName)
            REPORT FORM &cReportName PREVIEW
    --------
    Any help would be appreciated.

    If this way is not possible, any other alternative

    Regards

    Wilson

    "Sietse Wijnker" <sietse.wijnker@ATsw-software.nl> wrote in message
    news:#J$vayGdEHA.720@TK2MSFTNGP11.phx.gbl...
    > Hi,
    >
    > DLLs created with VFP are not function libraries as you can create them
    with
    > f.i. C++. The dll files in VFP are COM-components (single-or
    > multi-threaded). This means that when you create a DLL with VFP you'll
    have
    > to instanciate an OLEPUBLIC class within that dll to access code within
    the
    > library.
    >
    > FI
    > DEFINE CLASS SayHello AS Custom OLEPUBLIC
    > PROCEDURE SayHello(cString)
    > STRTOFILE(cString, "log.txt")
    > ENDPROC
    > ENDDEFINE
    > Save the following code to SayHello.prg and compile the dll using
    > BUILD PROJECT SayHello FROM SayHello.prg
    > BUILD DLL SayHello.dll FROM SayHello
    > in the command window (BTW. I'm using a single threaded dll here, to
    create
    > a multithreaded dll use BUILD MTDLL)
    > There's a good piece of info in the VFP help on 'Creating Automation
    > Servers'
    >
    > Problem you'll find is that COM-components in DLL CAN'T visually interact
    > with the user. If you want your library to visually interact with the
    user,
    > you'll have to compile the secondary project to an EXE or an APP. This
    gives
    > you the possibility to have a completely other design because now you can
    > have a main startup program or form which starts when you activate the app
    > or exe (do 2ndappfile.exe)
    > You can also use SET CLASSLIB to refer to a classlib in the other app-file
    >
    > HTH,
    > Sietse Wijnker
    >
    > "Noble Thomas" <nobletk@optusnet.com.au> wrote in message
    > news:4107356b$0$25459$afc38c87@news.optusnet.com.au...
    > > I am using VFP 6. My EXE file is getting bigger and bigger, which makes
    us
    > > hard to send file via email for support. So we have decided to use DLL
    > > projects for easy support.
    > >
    > > To test functioning of DLL's I have created a small project with a
    > function
    > > to display "Hello World" and used the following command to call, but
    giver
    > > error "Cannot fing the entry point SayHello in the dll".
    > >
    > > This is the program
    > > -----------
    > > SayHello() && Calling the function
    > > FUNCTION SayHello
    > > =MESSAGEBOX("Hello World 123")
    > > ENDFUNC
    > > -----------
    > >
    > > Command issued is
    > > --------------
    > > declare SayHello in test1.dll
    > > ?sayHello() **** gives error *****
    > > ---------------
    > >
    > > Any help would be appreciated.
    > >
    > > If anyone can forward a small project like this to demo dll function,
    that
    > > would be a great help
    > >
    > > rgds
    > >
    > > Wilson
    > >
    > >
    > >
    >
    >


  • Next message: Wilson Thomas: "multiple exe"