Building Windows 98 version + ASIO

Is it possible to build a win98SE version using MSC VC9 on XP? If so what is the config needed? I’ve successfully built a non-unicode release | win32 version with ASIO support, but it won’t run on the win98 machine. Win 98 is needed because of the Dman 2044 audio card. MSCVC9 won’t install on the win 98 machine.
Many thanks

Building ANSI (non-Unicode) with Visual C++ 2008 (VC9) can’t be done without considerable work. To build ANSI on VC9, Audacity has to be linked against static runtime libraries, because some of the functions in the VS2008 runtimes need to be changed to work on Win9x. This can be done in principle by making the changes to the runtime source and then linking against the modified static libraries. The problem is that since May 2008 Audacity supports plug-in modules, and this requires Audacity to link dynamically to five wxWidgets .dlls inside the Audacity installation folder. It is not possible to embed these .dll’s into Audacity and share them as static links.

The only possible solutions are to make changes to the code so that a statically-linked build can be made without wxWidgets-aware plug-ins (no developer will want to spend time doing this), or possibly to try and build the Unicode version on VC9 for use in Win 98 by including unicows (the Unicode support layer). I only tried the unicows solution once but did not manage to get the application to launch on Windows 98. However I did not try very hard because I still had VC8 (Visual C++ 2005) with which the ANSI Nightly Builds are currently made.

If you want Visual C++ 2005 Express you can still download the installer from Softpedia. I asume of course the installer will still download the correct files from Microsoft but I haven’t tried it. If you try it and it installs VC8 correctly, please post back.

Compiling Audacity in VC8 with ASIO support isn’t supported, but it might work OK if you have compiled Audacity with ASIO in VC9 under XP. It’s quite hard to do that on Win 7 at present, neither Edgar or I have managed it yet.


Thanks for your reply. The link to VC8 works fine. The VC++ installer works on XP but again not on Win 98. So now I have both VC8 and VC9 on my XP machine. I am confused. As I said, I have successfully built the latest beta with ASIO SDK extensions, via SVN and VC9. This version of Audacity runs fine on XP, but not on Win 98. I can’t test the ASIO part because my Dman 2044 only has ASIO drivers (etc) for Win 98. I have also downloaded and installed the Audacity 1.3.12 self extracting binary on the Win 98 machine. This runs fine with the Dman 2044, but no ASIO! So you guys must have a current setup or configuration for compiling etc, for the Win 98 target platform… Because otherwise it wouldn’t work!! Clearly there is either a misunderstanding here or I’m missing some bit of knowledge! I’d guess and say its either there is a switch in the solution/project configuration to compile, link & build to suit the win 98 platform or that its something to do with the compiler configuration itself. By the way VC8 on XP didn’t complete the build of either wxWidgets-2.8.11 or Audacity 1.3.12 (SVN) - Again I’d guess and say that its to do with the project/solution configuration, but its a mute point because I couldn’t get VC8 to run on win 98. It is interesting that the distributed exe of 1.13.12 includes the dll’s from VC8 though!
Happy hacking

I’m glad the VC8 setup installs on XP. :slight_smile:

I’m not surprised VC8 doesn’t install on Win 98, but all you need to do is build the ANSI executable in VC8 on XP, compiling in ASIO support by linking to the ASIO SDK as per win/compile.txt. ANSI Release of Audacity will work on Windows 98 if built in VC8, even if you build on XP.

I’m unclear what configuration you have built in VC9, but to build ANSI Release in VC8, you have to build the DLL Release configuration of Widgets then the Release configuration of Audacity.

Building current SVN in VC8 has never been documented but here are the main things you will or may need to do:

1 You will need to convert the Audacity .vcproj files and audacity.sln to be compatible with VC8. You can do this with vspc.

2 If you have an older “Platform SDK” it will not include support for the WASAPI API introduced with Vista. As a result, compiling the PortMixer library will fail, complaining about a missing header file (mmdeviceapi.h). To solve that, download a later Windows SDK compatible with your operating system (check the Windows SDK archive if you are on an older version of Windows).

3 The current win/audacity.ico is in .PNG format and will be refused by the resource compiler in VS8. Do one of these:

  • If you have a fairly old VS9, copy “VC/bin/rcdll.dll” from the “Microsoft Visual Studio 9.0” directory, then paste it into in the “Microsoft Visual Studio 8” directory, accepting the overwrite prompt.
  • Otherwise, obtain the older icon from SVN.

4 You may have to install the following to get past “Fatal error LNK1103: debugging information corrupt”

That ANSI binary is built in VC8 (Release Configuration). The only (possibly) viable way to build for Win 98 in VC9 is to try and build the Unicode binary with the unicows layer.

See above and win/compile.txt.

That’s a long piece of history but if you want to read it, see point 4 here.


Success ! :smiley:
Audacity + ASIO, on win 98SE (Dell 4550 c2003 - ok this machine was never sold with win98 but thanks to Intel and Nvidia it runs 98SE) with the Dman 2044. After some spoon-feeding VC8 has delivered, The winSDK (2007) was required - It needed to be registered with VC8. VC8 (express) needs the file corewin_express.vsprops modifying to include the full set of AdditionalDependencies - kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib comctl32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib rpcrt4.lib. VC8 also requires wxWidgets libs to be explicitly included to build both wx and audacity. wxWidgets-2.8.11 source didn’t need to be converted back to a VC8 proj, but Audacity did. wx built, finally, without error. Audacity built successfully but complained about slv2 (stdbool.h etc). Checking around this looks like I need an extra set of includes ‘c99’ to built lv2 modular plugin extensions, but this error doesn’t stop the build completing and Audacity running. Note: I have used the vc8 dlls (msvcm80.dll etc) that you distribute with 1.3.12. Largely because they weren’t obviously present elsewhere and I could!

So now I have 4 channels recording and playing back via ASIO… Brilliant thanks. I shall do some testing and feedback.