2017-03-23 3 views
0

Dans un langage c-ish, j'instanciait un objet MSScriptControl.ScriptControl et utilisait la méthode .AddCode pour exécuter VBScript, qui à son tour, instanciait l'objet CDO.Message.en utilisant CDO.message.HTMLBody dans l'objet MSScriptControl.ScriptControl

Cependant, chaque fois que je suis arrivé à la "objMsg.HTMLBody = \"" + email_body + "\" \n" (notez que c'était dans le c, le VBScript serait: objMsg.HTMLBody = email_body ligne du code, je me suis une erreur

d'erreur de compilation Microsoft VBScript : chaîne non terminée constante

Répondre

0

Finalement, j'ai trouvé le problème était que la email_body variable contenue caractère 10 (\n) en elle (plusieurs lieu s), qui a été interprété dans VBScript comme la fin d'une ligne de code (mais avant une citation), ce qui est une erreur de syntaxe.

Je ne peux pas m'imaginer que je suis la seule personne à manquer cela, alors j'écris un peu de «base de connaissances» ici.

Résolution: Dans la langue des parents (dans ce cas, une forme bizarre de c appelé HSL), utiliser une méthode de chaîne de remplacement pour remplacer tous les inctances de \n avec <br> et il fonctionne très bien maintenant, tels que: Puis, appelez la méthode ScriptControl.AddCode(...);.