Re: cards32.ew by Brian Broker: how move cards?

new topic     » goto parent     » topic index » view thread      » older message » newer message

Juergen Luethje wrote:
> 
> Dan Moyer wrote:
> 
> > Brian Broker wrote:
> > > 
> > > Dan Moyer wrote:
> > > 
> > > > 
> > > > Thanks Larry, I was hoping to be able to work on my app on either
> > > > machine,
> > > > but I see that will pretty near be impossible.
> > > > 
> > > > Dan
> > > 
> > > Nothing is impossible... Euphoria can't easily interact with 16-bit dlls
> > > but
> > > it doesn't have to...  just copy the 32-bit version (cards32.dll) with
> > > your
> > > app.  I seriously doubt that MS would have a problem with that... 
> > > Afterall,
> > > I don't think they even support OS's less than XP anymore.
> > > 
> > > =Brian
> > 
> > 
> > Hi Brian,
> > 
> > Glad to see you here!  smile
> > I was just going to ask people if copying 32-bit cards.dll or cards32.dll 
> > over to Win98, but with a different name & then have app detect which op sys
> > is present & use either cards.dll on XP or xcards.dll(same one) on Win98, so
> > as not to make any problem with other apps on 98 expecting 16-bit cards.dll.
> > 
> > But to do that, I need to detect op sys, & I haven't looked into that yet.
> > Anyone know how to do that?
> 
> <snip>
> }}}
<eucode>
> include misc.e
> include dll.e
> include machine.e
> 
> atom Kernel32
> integer GetVersionEx
> 
> if platform() = WIN32 then
>    Kernel32 = open_dll("kernel32.dll")
>    GetVersionEx = define_c_func(Kernel32, "GetVersionExA", {C_POINTER},
>    C_LONG)
> end if
> 
> constant           -- TYPE OSVERSIONINFO
>    dwOSVersionInfoSize =  0,  -- C_ULONG
> -- dwMajorVersion      =  4,  -- C_ULONG
> -- dwMinorVersion      =  8,  -- C_ULONG
> -- dwBuildNumber       = 12,  -- C_ULONG
>    dwPlatformId        = 16,  -- C_ULONG
> -- szCSDVersion        = 20,  -- String*128
> SIZEOF_OSVERSIONINFO = 148
> 
> global function win_platform()
>    -- out: 1 = Windows 95/98/Me, 2 = Windows NT/2000/XP/Vista
>    atom osinfo, void, ret
> 
>    osinfo = allocate(SIZEOF_OSVERSIONINFO)
>    poke4(osinfo + dwOSVersionInfoSize, SIZEOF_OSVERSIONINFO)
>    void = c_func(GetVersionEx, {osinfo})
>    ret = peek4u(osinfo + dwPlatformId)
>    free(osinfo)
>    return ret
> end function
> 
> ? win_platform()
> </eucode>
{{{

> See <a
> href="http://msdn2.microsoft.com/en-us/library/ms724451.aspx">http://msdn2.microsoft.com/en-us/library/ms724451.aspx</a>
> for more information.
> 
> Regards,
>    Juergen


Thanks Juergen!!

 From just reading the Euphoria doc, I was convinced distinguishing the flavors
of Windows wasn't possible, so thanks a lot for showing me how!

And copying the 32-bit cards.dll over (with a rename to be careful) works
fine, so your code will be useful.

Dan Moyer

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu