>>182
考え方が逆

glCreateProgram() の戻り値がシェーダーもアタッチされてる識別子で、自分で制御しなきゃいけないでしょ

つまり

GLuint programID;

programID = glCreateProgram();

glUseProgram( programID );

てな感じで、変数(構造体なりクラスなりのメンバとか)として
今セットしてるプログラムを制御しなきゃ駄目