-1

如何将此 VB6 代码转换为 Delphi?

strConv(a, vbUnicode)

Private cScript As New ScriptControl
cScript.Language = "Javascript"
cScript.Reset
cScript.AddCode StrConv(LoadResData(101, "RSADATA"), vbUnicode)
cScript.Run("createRsaKey", data1 , data2)
4

1 回答 1

3

首先:我同意@DavidHeffernan:请(非常请)寻找一种在 Delphi 中执行逻辑的方法。

按着这些次序:

  • 找到 Import Type Library 菜单功能,根据 Delphi 版本,它可能位于不同的顶部菜单(通常是 Components 或 Tools)下,或者有不同的名称(Import ActiveX、Import COM object...)
  • 从已知类型库列表中,选择列表中最高版本的“Microsoft Script Control”(但很可能它仍然只是 1.0 版)
  • 创建包装单元

然后使用TScriptControl对象的一个​​实例,可能是这样的:

var
  sc:TScriptControl;
  sa:PSafeArray;
  code:WideString;
  rs:TResourceStream;
begin
  rs:=TResourceStream.Create(HInstance,'RSADATA',MakeIntResource(101));
  try
    SetLength(code,rs.Size div 2);
    rs.Read(PWideChar(code)^,rs.Size);
  finally
    rs.Free;
  end;

  sc:=TScriptControl.Create(nil);
  try
    sc.Language:='Javascript';
    sc.Reset;
    sc.AddCode(code);
    sa:=PSafeArray(TVarData(VarArrayOf([data1,data2])).VArray);
    sc.Run('createRsaKey',sa);
  finally
    sc.Free;
  end;
end;
于 2015-02-18T09:05:43.263 回答