2017-09-01 18 views
2

散發出新行當使用Inno Setup preprocessor以生成多行的輸出,如例如在我的這些答案:在創新安裝預處理器

我總是要切換到使用#pragma parseroption directive,因爲與C風格字符串文字C風格的字符串文字,我可以使用\n

#pragma parseroption -p- 

#define TwoLines "line1\nline2\n" 

#pragma parseroption -p+ 

我還沒有發現任何方式在默認的Pascal風格的字符串文字中發出一個換行符。

在真實的Pascal(腳本)字符串中,可以使用#13#10。但是這在預處理器中不起作用。沒有一個相當於Pascal Chr function

是否有任何其他方式發出帕斯卡式字符串文字中的新行?

+0

你的意思是像這樣的const字符串文字:'const myString ='這是一個長字符串,將'+ '延伸到第二行';'? – DeadTrousers

+0

@DeadTrousers否,預處理器文字。像'#define FileEntry(Source)「來源:」+ Source +「; DestDir:{app} \ n」'。查看鏈接問題中的更多示例。 –

回答

1

我接過一看Inno Setup的預處理程序的源代碼:

https://github.com/jrsoftware/issrc/tree/master/Projects/ISPP

我覺得有沒有其他辦法比你的。預處理器主要基於C標記器,並且parseroption -p基本上只是啓用/禁用對轉義序列的支持。但是沒有解析Pascal字符文字的實現,如#13#10

+0

我在查看代碼時得出了相同的結論。但我無法相信默認的字符串類型有這樣的限制。 –