我在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版本仅给出本地时间。但是,现在,我只让它返回一个整数,用于测试。
我知道之前也曾问过类似的问题,但我相信我的回答完全符合我的意思。