我在innosetup安装脚本中导入C++ DLL.DLL代码如下:
void __stdcall SetFbParam(char *dbFileName,char *dbTableName,char *dbParamName,char *dbParamValue){
//of no use here and doesn't change anything}
Run Code Online (Sandbox Code Playgroud)
在Innosetup中,我使用导入它
procedure FBset(dbFileName,dbTableName,dbParamName,dbParamValue: String;);
Run Code Online (Sandbox Code Playgroud)
external 'SetFbParam@files:MyDll.dll stdcall setuponly';
但是,我总是启动安装程序的过程中得到一个运行时错误,说这不能导入我的DLL.我尝试了各种调用约定,但总是失败.如果它是任何重要的,我在(安装程序请求权标高和崩溃后),运行Win7的X64与UAC.
确切的消息是:
错误
运行时错误(在-1:0):
无法导入
DLL:C:\ Users\Nevod\AppData\Local\Temp\is-6LOEC.tmp\MyDll.dll
dll就在那里.
谢谢!
我有一个以两种方式发布的应用程序,原因与此处无关.它们的区别很小,主要是"徽章",奇数串等.
这两个版本都包括:
正如我所料,两个版本中的每一个中的文件大小几乎相同.上述文件的总大小为13 Mb,但两种文件之间的文件大小差异仅为1900字节左右.
InnoSetup生成的安装程序EXE的大小不同,为42.6k!
什么会导致这个?我有一种唠叨的担心,即某些装置已被"遗漏",尽管它们似乎可以检查出来.因为IS没有提供有关如何构建安装程序包的任何详细信息,所以我无法跟踪此异常情况.
任何想法,任何人?
如何使用Inno设置禁用欢迎页面但不禁用下一页
我的问题是当它禁用欢迎页面时,它们会隐藏显示其他文件下载的页面
我打电话ISCC /DENABLE_SIGNING=1 MyFile.iss,在MyFile.iss我有:
#if ENABLE_SIGNING == 1
SignedUninstaller=yes
SignTool=mysigntool
#endif
Run Code Online (Sandbox Code Playgroud)
ISPP失败并且错误地在以下行中出现错误#if ENABLE_SIGNING == 1:
[ISPP]运算符不适用于此操作数类型.
但是,如果我在MyFile.iss中定义了ENABLE_SIGNING,它就可以了.此代码通过时没有错误:
#define ENABLE_SIGNING 1
#if ENABLE_SIGNING == 1
SignedUninstaller=yes
SignTool=mysigntool
#endif
Run Code Online (Sandbox Code Playgroud)
编辑
另外,还有另一个问题,当我使用时/DENABLE_SIGNING=0,测试#if ENABLE_SIGNING成功,而如果我使用#define ENABLE_SIGNING 0,则检查失败(意味着评估为假),应该如此.
我正在使用inno setup安装我的软件(myprog.exe),我想强制用户启动myprog.exe作为管理员,但我无法弄清楚!我的exe在图标上没有uac盾牌,它可以在没有"右键单击"的情况下启动 - "以管理员身份运行"
我为安装程序设置了PrivilegesRequired = admin,但我只是为了安装阶段.
事实上,我想告诉Windows"嘿,我的程序是危险的,allays要求以管理员身份运行它"
有任何想法吗?
当在wpselectdir向导上单击浏览按钮时,弹出窗口不显示"make new folder".在帮助中,他们说如果DefaultDirName设置为no,则会在对话框中显示"创建新文件夹"按钮.我试图在[setup]部分设置为no,这没有用.请帮忙.
注意:我创建了一个向导页面CreateInputDirPage,在其中我可以选择使其显示,这是正常工作.
我有使用TInputQueryWizardPage的安装脚本.如何增加此页面的高度?例如,如果我有这个......
procedure InitializeWizard;
begin
MyPage := CreateInputQueryPage(wpReady,
'Some Information', 'Enter Information',
'Enter information, then click Next.');
MyPage.Add('info1', False);
MyPage.Add('info2', False);
MyPage.Add('info3', False);
MyPage.Add('info4', False);
MyPage.Add('info5', False);
MyPage.Values[0] := GetPreviousData('info1', '');
MyPage.Values[1] := GetPreviousData('info2', '');
MyPage.Values[2] := GetPreviousData('info3', '');
MyPage.Values[3] := GetPreviousData('info4', '');
MyPage.Values[4] := GetPreviousData('info5', '');
end;
Run Code Online (Sandbox Code Playgroud)
...然后最后一个编辑框不可见,因为它不适合表单.
感谢您的时间
我想知道是否有任何方式可以从Inno Setup的Exec功能中运行命令提示符,而这会隐藏用户的输出。目前,我有以下功能,我想这样做。
Exec(
'cmd.exe',
'/c ' + InstallPath + '\initdb ' + '-U postgres -A password -E utf8 --pwfile=' +
InstallPath + '\password.txt -D ' + DataPath,
'', SW_SHOW, ewWaitUntilTerminated, ResultCode);
Run Code Online (Sandbox Code Playgroud)
我知道您可以在该Run部分添加一个标志,但实际上还没有找到类似的标志。任何帮助,将不胜感激。
我在Inno Setup脚本中有三种类型。看起来像这样:
名称:“紧凑”;说明:“紧凑安装”名称:“完整”;说明:“完整安装”名称:“ custom”;说明:“定制安装”;标志:iscustom
如果我现在构建安装程序,则“标准”类型已满,但我希望首选是“紧凑”。我在Inno Setup的文档中找不到任何内容,但也许我输入了错误的关键字...
我怎么能意识到这一点?
感谢您的帮助
inno-setup ×10
installation ×2
c++ ×1
command-line ×1
dll ×1
dllimport ×1
filesize ×1
height ×1
installer ×1
uac ×1
windows ×1