why C++ is required for gaming? and should i install c++ X86 versions if i have X64 bit windows 10?

princeboy47

Limp Gawd
Joined
Aug 30, 2019
Messages
198
I recently installed new windows 10 N Home on my gaming pc and btw it has no media so running a game like quantum break which has in-game video streaming it gives an error saying MFPlat.dll was not found. back to topic. I currently have c++ X64 versions installed and no x86 c++ is installed. so I wanted to know what they do for gaming, whether the x64 or x86.
 
They're redistributables and they are used to install dependencies the game requires to run on your PC. x64 is the 64-bit version of the package and x86 is the 32-bit version.
 
Maybe this will help? https://support.microsoft.com/en-us...k-for-windows-10-n-and-windows-10-kn-editions

In regards to the C++ redistributables, you typically only need to install what the game/application requires. Quantum Break appears to require a 64-bit OS, so it probably requires the 64-bit VC++ redistributables. You can skip the x86 redist until you really need those for something else. If QB is installed through Steam, can you just verify files to get Steam to re-run the pre-requisite checks? Maybe it'll install all the necessary dependencies.
 
quantum break, like YouTube, needs a media player (libraries?) to launch videos. on the other hand, without my already installed media player (that is not windows's) I won't be able to launch videos at all. meaning, I can't run any videos that runs within the game (Windows 10 Home "N")
please help If you have a solution for it.
 
quantum break, like YouTube, needs a media player (libraries?) to launch videos. on the other hand, without my already installed media player (that is not windows's) I won't be able to launch videos at all. meaning, I can't run any videos that runs within the game (Windows 10 Home "N")
please help If you have a solution for it.

Have you tried installing the k-lite codec pack? https://codecguide.com/download_kl.htm
Maybe it just needs codecs installed and not windows media player.
I used to run a windows N version and never had problems with games not playing videos, but I never tried that game specifically.
 
it is not the media player that is required to run the game. it is a kind of a libraries, like what i just left as attachment (sorry, no accessories on my pc ^^").
 

Attachments

  • SS.docx
    19.1 KB · Views: 0
Yep, apps need libraries (DLLs, dynamic link libraries) to run, microsoft puts together SDKs (source development kits) for c++, .net, and other languages, as well as prebuilt redistributable libraries which are required for programs built using those SDKs to run.

They aren't included by default because many programs are simply statically linked or use 3rd party libraries, and the redistributable is rather large (as well as having multiple versions).
 
Yep, apps need libraries (DLLs, dynamic link libraries) to run, microsoft puts together SDKs (source development kits) for c++, .net, and other languages, as well as prebuilt redistributable libraries which are required for programs built using those SDKs to run.

They aren't included by default because many programs are simply statically linked or use 3rd party libraries, and the redistributable is rather large (as well as having multiple versions).

Yep. It's one thing most people don't understand. C++ and even C compilers don't just compile a program into machine code, and voila, it's all done. They have a runtime, which typically would be a DLL on a Windows computer. And they're constantly being updated. The one thing is, you just can't use one DLL and be done with it. That would run into name mangling issues. The same goes with x86 vs x64. There are some major differences in how the architecture is handled to call the functions. So, what you end up with is needing multiple versions of a library for different programs. There is a location in the Windows folder which keeps track of the versions, and if you were to take a harder look, you'd notice that you may have dozens of the same dll, but different versions.
 
So have you tried installing the Media Feature Pack (https://support.microsoft.com/en-us/help/3145500/media-feature-pack-list-for-windows-n-editions) for your Windows 10 N build? That isn't a media player, it's the dependencies that allow applications to use media features.
yes I installed the package and nothing changed. quantum break won't run. also, YouTube, part of the problem, gives the same thing since installing this windows version. so, I installed 10 N for the sole purpose of having a gaming os which has no bloatware or any apps to use resources. I wanted the least resource-consuming os, I made a topic for any other os that fits for gaming rather than windows but turns out there isn't. so I thought why not try N version for windows 10 Home. I attached a file for the YouTube error.
 

Attachments

  • SS1.docx
    50.7 KB · Views: 0
Yep. It's one thing most people don't understand. C++ and even C compilers don't just compile a program into machine code, and voila, it's all done. They have a runtime, which typically would be a DLL on a Windows computer. And they're constantly being updated. The one thing is, you just can't use one DLL and be done with it. That would run into name mangling issues. The same goes with x86 vs x64. There are some major differences in how the architecture is handled to call the functions. So, what you end up with is needing multiple versions of a library for different programs. There is a location in the Windows folder which keeps track of the versions, and if you were to take a harder look, you'd notice that you may have dozens of the same dll, but different versions.
Well sort of. You can build a program to run without support libraries with static linking. But since most programs use a lot of the same code as any other, it would be a waste of an awful lot of storage and memory with multiple copies of the same code. So you combine all of those commonly used bits of code into one library and link your various programs to it. Also makes code maintenance simpler. The caveat is what used to be call DLL hell, which was the versioning conflicts you mentioned. The solution was.... duplicating code.
 
yes I installed the package and nothing changed. quantum break won't run. also, YouTube, part of the problem, gives the same thing since installing this windows version. so, I installed 10 N for the sole purpose of having a gaming os which has no bloatware or any apps to use resources. I wanted the least resource-consuming os, I made a topic for any other os that fits for gaming rather than windows but turns out there isn't. so I thought why not try N version for windows 10 Home. I attached a file for the YouTube error.
What is your hardware configuration that you feel you need an OS with "less bloat?" The multimedia capabilities of the OS literally use no resources unless there is a program running that needs them. And every game needs them. There were plenty of answers given in the other thread.
 
Yep. It's one thing most people don't understand. C++ and even C compilers don't just compile a program into machine code, and voila, it's all done.

I mean, they kinda can, it's just not done under any normal circumstance and it's generally a battle to make it work. If you ever want to write a reallyyyy tiny program like you see in the demoscene, you'll probably be doing this.

At least on Windows, the default entry point the linker expects will be mainCRTStartup(). You can implement an extremely barebones one (i.e. just call main()) but know you'll break certain functionality that I can't remember right off the bat at minimum. Years ago I remember finding that just the act of not linking against the CRT was enough to trip a handful of virus scanners. Program literally did nothing except return 0 and compiled to like 2 X86 instructions.

C:
int main();
int mainCRTStartup()
{
    return main();
}

int main()
{
   return 0;
}

Once you appease the linker gods, you'll probably get a program that literally builds to something like this with zero dependencies (other than the OS itself). If you need to do something, either try to call the MSVCRT that comes with the Windows or implement everything yourself with the OS API.
Code:
xor eax, eax
ret

If you really feel like getting hacky, you can merge all the sections in the PE. Enjoy your 1kb exe that compresses to like 200 bytes or something.
 
A couple of things to point out:

1: Just because a program is 64-bit doesn't mean it doesn't link against 32-bit libraries; this is actually annoyingly common. As a general rule, if a program want's to install a Redistributable package, let it.

2: The packages came about so developers wouldn't have to recompile their code every time Microsoft made updates to their C++ library (something I note is a major problem in FOSS land); they can just link against the specific version of the library that the program was coded against. The downside, unfortunately, is you'll end up with dozens of packages installed as different programs link against different versions. 99% of the time, the latest version would work fine, but it's safer just to leave them all installed.

3: When you use versions of Windows that removes/disables "bloat", you quickly find things don't work right because of how interconnected everything is. Developers don't expect required features to not be there, so don't expect most high-end games to run properly if those features are missing.
 
Windows N was your mistake.

Though there may be a way to fix it, I don't know, I don't use N, probably easier to just install the regular version on Win 10 and not worry about it.
 
I already have the c++ all installed. is this a different tool for compatability?
1593103345243.png
 
Back
Top