CreateProcess et les arguments de ligne de commande

Info De Base: Windows 7, Visual C++ 2010 Express

Problème: CreateProcess() conserve son retour avec "Invalid argument de ligne de commande'

Explication: je suis en train d'écrire un morceau de code qui appelle à des programmes externes à l'aide de la Windows API CreateProcess. J'ai reçu l'appel à travailler avec un programme externe jusqu'à présent:

if( !CreateProcess( "C:\\Temp\\convert.exe",
    t_str,        //Arguments
    ...
}
//where t_str is " C:\\img1.jpeg C:\\img1.pgm" (ImageMagick if you're wondering). 

Cela fonctionne parfaitement, même avec la quantité de données modificateur j'ai fait pour pousser le tout dans le Windows des chaînes et des pointeurs. J'ai donc copié l'ensemble de la déformation de la fonction CreateProcess() pour un autre appel à un autre programme externe:

 if( !CreateProcess( "C:\\Temp\\sift.exe",
     t_str2,        //Arguments
     ...
 }
 //where t_str2 is ` < C:\\img1.pgm > C:\\img1.key`

Fondamentalement, quelque chose de très similaire, mais avec tous les noms de variable changé (depuis que j'ai ces deux appels de course de série). Et c'est là que le problème, ce n'est pas l'exécuter, et, au lieu de cela, l'affiche "Invalid argument de ligne de commande: < C:\img1.pgm". Bien sûr, cette commande fonctionne très bien dans l'invite de commande, mais pas dans mon code.

Je suis passé t_str2 à quelque chose d'autre un peu moins compliqué(vu que je sais comment sift.exe travaille) et j'obtiens le même résultat. La même chose arrive quand je lance juste des eipd et de ne pas convertir.

Question: Ce qui pourrait être à l'origine de ce problème? Que pourrais-je faire pour déboguer ce problème? Toutes les suggestions sur les solutions de rechange pour les méthodes que j'utilise? Toute aide est appréciée. Je peux fournir plus de code, mais C'est assez simple, et pas beaucoup pourrait aller mal avec elle.

Juste une pensée: que faire si vous lancez la commande cmd.exe avec des paramètres /c c:\temp\sift.exe < c:\img1.pmg > c:\img1.key?

OriginalL'auteur user850275 | 2011-12-27