码迷,mamicode.com
首页 > 其他好文 > 详细

Inno setup中定制安装路径

时间:2014-11-23 12:57:38      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:des   blog   http   io   ar   os   使用   sp   strong   

原文:Inno setup中定制安装路径

我的程序修改了安装界面,所以我的界面中提供了更改安装路径的方法。
用户修改后的路径会被传回inno setup脚本,脚本中需要做的事情如下:
1,写一个函数,来返回新的安装路径,如:
function MyDestDir(SubDir:String):String;
begin
  if SubDir = ‘‘ then
    Result := RootDestFolder
  else
    Result := RootDestFolder + ‘\‘+ SubDir;
end; 
2,把原来使用{app}的地方都改成:{code:MyDestDir},安装脚本自己能够调用MyDestDir并得到正确的路径。如:
Source: "test.xml"; DestDir: {code:MyDestDir}; 
Source: "\res\ReloadHigh\*"; DestDir: {code:MyDestDir|res\ReloadHigh}
最后记得加上:UninstallFilesDir={code:MyDestDir}, 否则卸载程序会被放到{app}.
 
注意:
如果在定制后的DLL中修改安装路径,可以让inno setup把原来的路径以TCHAR*的形式传给DLL,DLL直接修改。
但因为PASCAL的String类型并非是C语言的0结尾字符串,它会记录字符串的真实长度,所以被C语言修改后的String不能直接使用。因为长度不一定相同(实际情况是如果长度没变,就是正确的,如果长度有变化,程序安装路径中的文件名就不见了,安装不了)。
所以在从DLL返回后,需要使用Length函数重新给String设置正确的长度。
 

Inno setup中定制安装路径

标签:des   blog   http   io   ar   os   使用   sp   strong   

原文地址:http://www.cnblogs.com/lonelyxmas/p/4116335.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!