我需要支持在Delphi 7中开发的工具。它使用的是Borland数据库引擎。所以我开发了一个安装工具包,它安装了BDE并使用了IDAPINST DLL函数。
直到Windows 8.1,该工具在英语和德语操作系统中都运行良好。但是在Win 10德语操作系统中,安装时挂起来自IDAPINST DLL的函数调用。
我已经尝试使用appcompat设置基于一些博客中几位专家提供的建议。不幸的是,它没有帮助!!
任何建议几乎都欢迎
示例代码
procedure TForm1.Button1Click(Sender: TObject);
type
T95IntlProc = procedure(pszCfgFile: pChar;blIdapi16: Integer;sLang: pChar); stdcall;
zString = array[0..255] of Char;
Var
hLib: THandle;
IntlProc95: T95IntlProc;
z1,z2: zString;
begin
Try
hLib := LoadLibrary('IDAPINST.DLL');
if hLib = 0 then raise Exception.Create('unable to load idapiinst dll');
StrPCopy(z1,'C:\Borland\Common Files\BDE\idapi32.cnf');
StrPCopy(z2,'0009');
Showmessage('GET IntlConfig ProcAddr');
IntlProc95 := T95IntlProc(GetProcAddress(hLib,'IntlConfig'));
Showmessage('CallDLL_IntlConfig started');
{** MY code hanging in the below method **}
IntlProc95(z1, 0, z2);
Showmessage('CallDLL_IntlConfig called');
Finally
FreeLibrary(hLib);
End ;
end;