[AccessD] 32->64 bit

Bill Benson bensonforums at gmail.com
Thu Nov 4 19:23:33 CDT 2021


Although… on second thought…

I have begun wondering if multiple calls to a public declared API in a
single call stack might possibly end up altering variable states that need
to staty unchanged until the end of calling routines, causing them to have
to be set again or risk crashes.

Cannot think of any routines I have built that would cause such unintended
outcome but maybe it could happen.



On Thu, Nov 4, 2021 at 7:07 PM Rocky Smolin <rockysmolin2 at gmail.com> wrote:

> I have a module called Publics which has all of my handy functions - like
> browse for file, browse for folder, screen resizing etc. I copy it into any
> new app I create. Handy.  I have another one that has the back end
> relinking  routines, which I use in almost all my apps. Ok used to use.
> I'm on my last two clients.
>
> r
>
> On Thu, Nov 4, 2021 at 3:22 PM Bill Benson <bensonforums at gmail.com> wrote:
>
> > I have never seen the benefit of declaring Windows APIs privately and
> > duplicating the declarations in several places. Could someone explain how
> > things would go wrong if declared public? It might make code less modular
> > that’s for sure, as the temptation will grow over time to collect more
> and
> > more of them in a single module and then never be able to disentangle
> them.
> > But if you are not so foolish, and just want to have one central std
> module
> > with the APIs that all your form and other type modules need to call in a
> > particular project, what is the problem with a public declaration? Not
> > saying there isn’t any, I am asking sincerely for information where that
> > fails in the real world, not some awkwardly contrived coding scenario
> > created just to prove a point.
> >
> > On Thu, Nov 4, 2021 at 12:50 PM Jim Dettman via AccessD <
> > accessd at databaseadvisors.com> wrote:
> >
> > >
> > >
> > > It’s best practice to always limit the scope, and they probably didn’t
> > use
> > > it outside of the module, so they marked it private.
> > >
> > >
> > >
> > > Jim.
> > >
> > >
> > >
> > > From: Arthur Fuller
> > > Sent: Thursday, November 4, 2021 12:35 PM
> > > To: Access Developers discussion and problem solving <
> > > accessd at databaseadvisors.com>
> > > Cc: Jim Dettman <jimdettman at verizon.net>
> > > Subject: Re: [AccessD] 32->64 bit
> > >
> > >
> > >
> > > Jim,
> > >
> > > I know that. I'm just a bit puzzled why Getz et.al <http://et.al> .
> > chose
> > > to set it up that way in all the BAS files in their book.
> > >
> > >
> > >
> > >
> > >
> > > On Thu, Nov 4, 2021 at 11:40 AM Jim Dettman via AccessD <
> > > accessd at databaseadvisors.com <mailto:accessd at databaseadvisors.com> >
> > > wrote:
> > >
> > >
> > >  That's something that pertains to scope, not 32/64 bit.
> > >
> > >  Private just means that the declare can only be called from the module
> > > it's
> > > in.  Public would be the opposite, where it can be called from
> anywhere.
> > >
> > >  Here's a link that covers it:
> > >
> > >
> > >
> >
> https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-starte
> > > <
> > >
> >
> https://docs.microsoft.com/en-us/office/vba/language/concepts/getting-started/understanding-scope-and-visibility
> > >
> > >
> > > d/understanding-scope-and-visibility
> > >
> > > Jim.
> > >
> > > -----Original Message-----
> > > From: AccessD On Behalf Of Arthur Fuller
> > > Sent: Thursday, November 4, 2021 10:38 AM
> > > To: Access Developers discussion and problem solving
> > > <accessd at databaseadvisors.com <mailto:accessd at databaseadvisors.com> >
> > > Subject: [AccessD] 32->64 bit
> > >
> > > This is more work than I had hoped. Also confusing. A bunch of the code
> > I'm
> > > trying to upgrade comes frm Access 2000 Developers Handbook (Getz,
> Liwin
> > > et. a.) All the code I gpt from there declares the API stuff like this:
> > >
> > > Private Declare Function xyz
> > >
> > > I don't understand the use of "Private" in this context.
> > >
> > > the Win32API_PtrSafe.txt file doesn't use the Private word. Instead the
> > >
> > > declarations look like this:
> > >
> > >  #If VBA7 Then
> > >   Declare PtrSafe Function SetTimer Lib "user32" (ByVal hWnd As
> LongPtr,
> > > ByVal nIDEvent As LongPtr, ByVal uElapse As Long, ByVal lpTimerFunc As
> > > LongPtr) As LongPtr
> > > #Else
> > >   Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, ByVal
> > > nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As
> > Long
> > > #End If
> > >
> > > --
> > > Arthur
> > > --
> > > AccessD mailing list
> > > AccessD at databaseadvisors.com <mailto:AccessD at databaseadvisors.com>
> > > https://databaseadvisors.com/mailman/listinfo/accessd
> > > Website: http://www.databaseadvisors.com
> > >
> > > --
> > > AccessD mailing list
> > > AccessD at databaseadvisors.com <mailto:AccessD at databaseadvisors.com>
> > > https://databaseadvisors.com/mailman/listinfo/accessd
> > > Website: http://www.databaseadvisors.com
> > >
> > >
> > >
> > >
> > >
> > >
> > > --
> > >
> > > Arthur
> > >
> > >
> > >
> > > --
> > > AccessD mailing list
> > > AccessD at databaseadvisors.com
> > > https://databaseadvisors.com/mailman/listinfo/accessd
> > > Website: http://www.databaseadvisors.com
> > >
> > --
> > AccessD mailing list
> > AccessD at databaseadvisors.com
> > https://databaseadvisors.com/mailman/listinfo/accessd
> > Website: http://www.databaseadvisors.com
> >
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> https://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>


More information about the AccessD mailing list