2009-07-29 9 views
1

Ayons un cheminComment placer le chemin stocké dans une variable entre guillemets?

C:\Program Files\TestFolder 

ce chemin que je suis arrivé programatically et emmagasinés dans un dirpath varible (par exemple)
chaîne Maintenant, j'ai concatinated

dirpath=getInstallationpath()+"\\ test.dll /codebase /tlb"; 

alors dirpath est devenu

C:\Program Files\TestFolder\test.dll /codebase /tlb 

Mais mon problème est que j'ai fait le chemin entre guillemets

"C:\Program Files\TestFolder\test.dll" 

Parce que quand je passe directement le dirpath comme pour commandline regasm dans un CreateProcess() il doit accepter C: \ Program seulement à cause de spaces.so blanc j'ai essayé beaucoup de cascades comme

dirpath="\ "+getInstallationPath()+" \test.dll /codebase /tlb " 

comme ça, mais n'a pas fonctionné ...

Alors s'il vous plaît me hEP à cet égard ...

Merci à l'avance ...

+0

Comment est-ce différent du problème http://stackoverflow.com/questions/1177323/how-to-pass-the-directory-path-as-command-line-for-the-process? – sharptooth

Répondre

2

Je peux voir deux problèmes avec cette ligne. Tout d'abord, vous devez échapper la barre oblique inverse précédant test.dll. Deuxièmement, en enveloppant le chemin entre guillemets, vous devez également échapper les guillemets.

Après ces changements, il devrait ressembler à ceci:

dirpath="\""+getInstallationPath()+"\\test.dll\" /codebase /tlb " 

Edit:

fixe l'affectation par la demande de Martin. J'ai oublié un guillemet fermant pour la première chaîne!

+0

Il compile sous g ++ avec dirpath en tant que chaîne. – Eric

2

Je crois que vous avez oublié le deuxième \ "après test.dll

2

Pour la construction de chaînes complexes, il est généralement plus facile (et plus efficace) d'utiliser un flux de cordes.

// Note the character(") and the character(\) 
// will need to be escaped when used inside a string 
std::stringstream stuff; 
suff << "\"" 
    << getInstallationPath() << "\\test.dll" 
    << "\"" 
    << "/codebase /tlb"; 
               // 
dirpath = stuff.str(); 
+0

Merci beaucoup ....... – Cute

Questions connexes