A library I used in my native Visual C++ application was GPLv3-licensed; I found the GPL acceptable, and thus I was planning to make my application GPL-licensed as well. The application depends on Visual C++ runtime DLLs, and I was planning to distribute them with the application. However, I noticed the following paragraphs in the FAQ (bold-facing by me):
You may link your program to these libraries [the Visual C++ (or Visual Basic) runtime library], and distribute the compiled program to others. When you do this, the runtime libraries are “System Libraries” as GPLv3 defines them. That means that you don't need to worry about including their source code with the program's Corresponding Source. GPLv2 provides a similar exception in section 3.
You may not distribute these libraries in compiled DLL form with the program. To prevent unscrupulous distributors from trying to use the System Library exception as a loophole, the GPL says that libraries can only qualify as System Libraries as long as they're not distributed with the program itself. If you distribute the DLLs with the program, they won't be eligible for this exception anymore; then the only way to comply with the GPL would be to provide their source code, which you are unable to do.
What would be an alternative to this? Static linking would seem to present the same problem, and would be a rather difficult change to implement due to other precompiled binaries. I could ask users to install redistributable runtimes if necessary, but this would present an additional hassle to them. More drastic alternatives would include asking the library author about non-GPL usage (possibly involving payment) or using a different library and a non-GPL license.
Any help would be appreciated; I would also appreciate if respondents kept in mind that this is the first application that I am publishing.