Meter librerias sueltas en el S.O. solo puede darte problemas. Lo correcto es de donde proviene e instalar debidamente el paquete.
Casi siempre que me ha faltado una libreria era actualizaciones de DirectX, librerias de los nuevos VisualC o una version mayor de Framework.Net.
Si a un Windows actual le instalas DX9 de junio (el DirectX9 de windows7/8/10 está incompleto, si tienes juegos dx9 mejor instalarlo), y estas al dia con el .Net y tienes instalados las diferentes versiones de vcredist (32 y 64bit y respectivo año) raramente te faltará alguna.
En cuanto tu empiezas a toquetear metiendo dll sueltas salidas de a saber donde y que estas necesitan de otras y que hasta pueden ser de un Windows diferente ya empezamos con el panorama que tu mismo describes, empiezas a volverte majara con las dll y los programas siguen sin funcionar.