Wine and Platypus
Damian Gerow
damian at sentex.net
Wed Jul 16 11:39:48 CDT 2003
Some time ago, I posted some questions/statemets to -users and -devel about
getting Platypus (the ISP billing software) running under wine. I received
zero responses, but did a fair bit of hacking on my own.
Due to the number of requests for information I've gotten about this, I've
decided to post my work publicly. This will hopefully be maintained in
online archives, so future people wanting to get Plat working under Wine
will at least have a starting point.
As of right now, I *still* do not have it working. I can install it, but
that's all.
I am using Platypus 2.9. I know it's old, but it's the client we've got.
The underlying system is FreeBSD-5.1R, with wine-2003.06.18 installed from
ports. But this also holds true for the past couple releases of wine,
dating back to the middle of 2002, I believe.
I've spoken to a couple of people with 3.0, who have had the same problems I
have. I think the only thing you'll find is the required DLLs will change
from version to version.
First off, the install:
% wine c:/runtime.exe
Give it your SQL server address, the database information, and go. you'll
probably crash at some point in the installation, that doesn't seem to
matter. I don't think I ever got past either the 'You need to update
MDAC/Jet' section, or the 'Updating System Configuration' section. Just let
it go for a while, then kill the wine process. Note, you'll need to
manually kill wineserver et al once you <CTRL>+C the actual install.
Next off, you need to configure your ODBC stuff. This involves stealing the
required DLLs from a Windows machine (using the same DLLs from the OS you're
emulating is a best bet). To save you some time, here's a list of native
DLLs that I needed to grab -- YMMV:
vfp6r
vfp6renu
mfc42
mfc42loc
cr2c71en
odbc32
odbc
odbcint
odbccp32
sqlunirl
nddeapi
sqlsrv32
Then comes the difficult part: hacking your registry to include all the
necessary ODBC entries so you can connect. There's no easy way to do this
-- just go to a Windows machine that has plat installed and working, open up
regedit/regedt32, and search for the DSN that it's using. You'll need to
copy *everything* over, properly, or it just won't work. (Side note, I also
believe that I did a google search for wine+odbc, and used some of the
results I got from it. YMMV.)
And this is where I die. I know start plat with:
% /usr/local/bin/wine --dll vfp6r,vfp6renu,mfc42,mfc42loc,cr2c71en,odbc32,odbc,odbcint,odbccp32,sqlunirl,nddeapi,sqlsrv32=n --dll shell32=b,n c:/Program\ Files/Platypus/plat.EXE
I can choose my Data Source (PLATYPUS2, in my case), but as soon as I do, I
get the following error:
File: ..\src\procaddr.c, line: 424
GetCurrentHwProfileW entrypoint could not be found in ADVAPI32.DLL
OK'ing this error brings up a couple more, and Plat quits. I have gone
through and added a pointer to GetCurrentHwProfileW (copied it from
GetCurrentHwProfileA), ran it again, and got more entrypoint not found
errors. I kept on adding stubs until I got some fatal errors that I
couldn't track down (I've forgotten where and what at this point), and I
stopped working on it.
It's not easy getting Plat up and running to the point that it is, and I
can't imagine that it'd be any easier to actually get it working.
If anyone needs help working on this, I'm willing to help. If needed, I can
try posting my registry file to aid people.
And if anyone wants to work with me (*ahem* wine developers *ahem*) to get
this working, I will dedicate any time and resources I've got to getting
this going. I'm not a great C programmer, but I can provide a good testbed.
- Damian
More information about the wine-users
mailing list