如何在delphi棱镜中导入DLL



我正试图在delphi棱镜程序中导入dll,但以前从未这样做过。所以,在网上找到一些答案后,我把一些东西放在一起,如下所示,但不起作用。

MyUtils = public static class
private
[DllImport("winmm.dll", CharSet := CharSet.Auto)]
method timeBeginPeriod(period:Integer):Integer; external;
protected
public
constructor;
end;

以下是我如何使用它:

var tt := new MyUtils;
tt.timeBeginPeriod(1);

当我运行我的程序时,我不断地得到以下错误。

  • "MyUtils"不提供可访问的构造函数
  • "System.Object"在表达式中不包含"timeBeginPeriod"的定义"tt.timeBeginPeriod。">

我做错了什么?如何在delphi棱镜中导入dll?

我遵循了这个stackerflow问题——Delphi Prism获得未知标识符";DllImport"错误

你非常接近。

你不需要构造函数,所以你可以删除它:

MyUtils = public static class
private
[DllImport("winmm.dll", CharSet := CharSet.Auto)]
method timeBeginPeriod(period:Integer):Integer; external;
protected
public
end;

如果从声明timeBeginPeriod函数的单元外部调用它,则需要将其可见性更改为public

您也不需要创建一个实例来调用函数:

MyUtils.timeBeginPeriod(1);

我用一个声明并使用SendMessage的应用程序进行了测试,这样我就可以很容易地检查以确保它确实有效(我向同一表单上的Edit控件发送了一条EM_SETTEXT消息)。

MyUtils = public static class
public
[DllImport("winmm.dll", CharSet := CharSet.Auto)]
class method timeBeginPeriod(period:Integer):Integer; external;
end;

MyUtils.timeBeginPeriod(1);

相关内容

  • 没有找到相关文章

最新更新