Where to find list of default dll files available on Windows (XP, Vista, 7, ...)? - windows

Is there some list of .dll files that are available on the various freshly-installed Windows platforms (or at least, the recent ones like Win XP and Win 7)? I am looking for a list similar to this one for Windows 2000.
(I am compiling a python app with py2exe, and the application reports which dlls are required for potential distribution with the compiled application, but unfortunately it doesn't tell me which ones are installed by default)

I think this is what you're after (at least for Windows 7).
And here's the Windows XP version.

If you are targeting different windows versions with your application, it is a really good idea to set up a virtual test environment for each of the primary target platforms, for example, using VMware, MS Virtual PC or Oracle Virtual Box. If you then still need the list of all available DLLs, just look in the windows folders after a fresh install in the virtual machine by yourself.
By the way, having a look on the py2exe tutorial site, the example shows up ADVAPI32.dll,
USER32.dll,SHELL32.dll and KERNEL32.dll as DLLs on which the generated files depend. AFAIK those DLLs are primary windows components, not to be deployed by your program, and available under all Windows versions I had to deal with the last 15 years.

Related

Test my program in different windows versions

Before go to production, I have to test a windows application in several windows versions (from 7 to 10, 32 and 64 bits), what supposes download the ISOs (luckily we have licenses), create the virtual machines and install all the versions one by one. Is there any faster way to do it? Like a cloud solution as an example.
I create different OS images manually on Virtualbox and use the VirtualBox Automation API's to install the windows application and test them.
Here are related SO posts
Testing windows installers
How to automate installer testing

Windows Installer ability to place short-cut with different URIs

I have a windows form application which is being installed on client pc by using msi file trough active directories, application is a 32bit app which is being deployed to a 32 bit and 64 bit windows systems and as we know application folder names are different between 32 and 64 bit systems, Program Files and Program Files(x86), also during installation application shortcut is placed in startup folder so app will be started when PC us powered up.
Question: Is there a chance to build msi by Windows Installer provided by Visual Studion in such a way that it will check what operating system its being installed at and place the shortcut in to start up folder with correct URI, to Program Files\Applicaiton\ or Program Files(x86)\Applicaiton?
Thank you!
Windows Installer packages are platform aware (x86, x64 ). Windows Installer doesn't support 64bit packages running on 32bit platforms or 32bit packages writing to 64bit ProgramFiles.
You can compile your EXE as AnyCPU and even though it's installed as 32bit it'll execute as 64bit. Although the Visual Studio team has moved away from that and compile as x86 by default in recent versions of Visual Studio.
Upon initialization, the Windows Installer gathers information about the operating system and automatically sets properties that can be used in optional conditional statements used by the setup application, such as VersionNT64 and "System Folder Properties"
In cases where it is necessary for the setup to know this information, it is preferred practice to allow the Windows Installer service to determine folder locations rather than try to hard-code this information into the package.

Do I have to make allowances for Inno setups on 64-bit Windows?

We've got an ancient of days VB6 app which sometimes needs to be updated and installed on our user's machines. We've begun using Inno, and especially InnoIDE, to make the setup.exe, to get this onto our user's PCs. However, I'm wondering about 64-bit Windows, and Inno setups. We've got a couple of machines in-house, which are 64-bit versions of Windows 7 Professional. I've successfully installed our app, using the setup from Inno, onto a 32-bit Windows XP machine. Can I use the same setup on our 64-bit Windows 7 machines? Will it put the .exe into the C:\Program Files (x86)\ directory structure automatically, or do I have to make allowances for 64-bit versions of Windows?
If your app is only 32-bit, then Inno will automatically take care of doing everything correctly.
Only if your app is mixed or 64-bit do you need to do anything special as rushman says.
There is a very good section in the help file that explains the changes needed.
If you're installing any 64-bit device drivers, the calls to most newdev and setupapi entry points will fail with error code 0xE0000235 (ERROR_IN_WOW64). Those calls only work when invoked from 64-bit code, and Inno doesn't compile 64-bit installers yet. You may work around by using pnputil.exe, by adding a 64-bit stub executable, or by switching to WiX.
For 64-bit INNO intallations you generally only need to add one setup section directive and, obviously, add the 64-bit versions of DLL's and EXE's to the compiled installer.
The setup section directive is:
ArchitecturesInstallIn64BitMode=x64

why is wlanapi.lib missing on Windows XP SP3

To get information about the wireless LAN cards, I came across the api WlanEnumInterfaces . In the documentation, it says
Minimum supported client - Windows Vista, Windows XP with SP3
It means that the api is available on the above mentioned Operating System
The application is running on Windows XP with SP3, but when inlcude , it gives error - file not found.
If I search my whole PC, this file is not found. Even the corresponding library is 'wlanapi.lib' is missing
Any help would be useful...
You should be looking for wlanapi.dll, which is the runtime component.
Generally when you're using new APIs, you should be using LoadLibrary and GetProcAddress, so you can handle failure gracefully.
This import library is included with the Windows SDK. I have to guess that you've got an old version of it on your machine. The default install location is c:\program files\microsoft\sdks\windows\???\lib where ??? is the SDK version number (like v7.0).
You can download the SDK from Microsoft. Do make sure that the version you get is compatible with your version of Visual Studio. Do not attempt if you have an old one, like version 6.

Additional languages in Virtual XP mode under Windows 7

Is there any way to get additional languages in Virtual XP Mode under Windows 7?
Thanks,
kreb
From my testing of XP mode it appears that its just a VM running on Windows Virtual PC where the VM add-ons provide hooks for Windows 7 to run any application that's installed on the VM. The key thing appears to be Windows Virtual PC and the add-ons, since you can have Windows 7 installed on the VM just as easily as XP.
I don't see why you couldn't have multiple VMs running different languages if that's what you're looking for.
Thanks, for the interest..
Anyway, I managed to make it work by inserting a physical Windows XP CD (Simplified Chinese, SP2) in and getting the language files from that. WinXP complains that the files are the wrong version though and that they're not the ones used by the install media, which in this case is an MSI that I got from the Microsoft website. So yeah, just ignore the warnings, reboot, you should be good.. :)

Resources