Inno脚本无法读取dll函数

时间:2018-08-01 19:19:08

标签: inno-setup pascal

我在Inno Script中有一个对Visual Studio C ++ Express中制作的dll函数的调用。但是我不断收到一条错误消息,提示“无法调用proc”,错误6:16。我相信我已经按照指示完成了设置:

[Files]    
Source: "C:\Users\Documents\Visual Studio 
2010\Projects\Testprogram\Release\Utctime2.dll"; DestDir: "{app}";  Flags: 
dontcopy

[Code]
function Utc(): Integer;
external 'Utctxt@Utctime2.dll stdcall delayload';

function GetInstallDateTime (s : String ) : String;
Var 
  Text : String;
  Integer : Number;
begin
  Number := Utc();
  Text := IntToStr(Number);
  Result := Text;
end;

[Registry]
Root: HKLM; Subkey: "Software\Testprogram\Settings"; ValueType: String; 
ValueName: "mrg"; ValueData: {code:GetInstallDateTime|''}; Flags: deletekey;

我们将不胜感激。预先感谢。

这是C程序的代码:

#include <windows.h>
#include "StdAfx.h"
#include "Utc.h"

int WINAPI DllMain (HINSTANCE hInstance, DWORD fdwReason, PVOID pvReserved)
{
    return TRUE ;
}

EXPORT BOOL CALLBACK Utctxt ()
{
  CHAR Time[10];
  int DateTimeTable[5];
  int count;
  SYSTEMTIME UTime;   
  count = 123;
  /*
  GetSystemTime(&UTime);
  DateTimeTable[count]   = UTime.wMinute;
  DateTimeTable[++count] = UTime.wYear - 2000;          
  DateTimeTable[++count] = UTime.wDay;
  DateTimeTable[++count] = UTime.wHour;             
  DateTimeTable[++count] = UTime.wMonth;         
  */  
  return(count);
}

该程序的唯一目的是获取UTC时间的字符串表示形式,因为Inno Script中的pascal版本仅给出本地时间。但是,现在,我只让它返回一个整数,用于测试。

我知道之前也曾问过类似的问题,但我相信我的回答完全符合我的意思。

0 个答案:

没有答案