argv[0] - имя собственно самой запущенной программы
argv[1] - переданный параметр
откуда 2 ?
Длина массива argv[], два элемента. shellExec.zip (, : 2)
Собрал VS2017. На всякий случай со статическими либами, бо не факт, что .dll-ки у тебя инсталлированы.
Добавлено
P.S. Если твой argv[1] нужно запускать с параметрами, что имеет смысл, то программка слишком проста. Нужно доработать на сбор последующих argv[] в строку и передавать вместе с argv[1] в начале.