「VCで」というのが見えないのか。
それを云うならCreatePipe, CreateProcess, DuplicateHandleだろう。
VC++のcrtのソースを見る限りは、COMSPEC環境変数で指定されている
シェルか、cmd.exe/command.comを起動する。
ただでさえコマンド引数まわりの扱いが貧弱なのに、さらにシェルの
引数解釈が割り込むとロクなことがないので、_popenを使わないことを勧める。
パイプを使うサンプルはMSDNに転がっていたと思うし、rubyあたりの
ソースに直截流用可能なWin32版のpopenの実装があったと思う。