Quanto ao primeiro problema, é normal. Todas as bibliotecas de GUI (interfaces gráficas) têm de lidar com o problema. Normalmente o que se faz é criar um sistema de coordenadas de [0,1] ou [-1,1]. Metes os teus componentes da interface nesse sistema de coordenadas, mas depois tens de ter a resolucao em conta quando fazes os testes pelas coordenadas do rato. É simples converter entre resoluções e coordenadas entre [-1,1], acho que não vais ter problemas com isso.
O segundo problema também é simples de resolver, embora chato. Podes compilar o teu código com o Visual C++ 6 (muito pessoal ainda faz isto) e assim funciona logo directamente em qualquer PC, mas o melhor é distribuires as DLLs da versão do Visual C++ que usas. Normalmente só precisas de distribuir uma DLL, da versão de release. A Microsoft recomenda que em vez de distribuires as DLLs, instales o redistributable que vem com o Visual C++, que basicamente instala as DLLs no sistema. Faz como te der mais jeito.