我正在尝试在我的delphi-prism程序中导入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);
当我运行程序时,我不断收到以下错误。
我做错了什么?如何在delphi-prism中导入dll?
我遵循了这个stackoverflow问题 - Delphi Prism getting Unknown Identifier "DllImport" error
答案 0 :(得分:1)
你非常接近。
您不需要构造函数,因此可以将其删除:
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
消息)
答案 1 :(得分:1)
MyUtils = public static class
public
[DllImport("winmm.dll", CharSet := CharSet.Auto)]
class method timeBeginPeriod(period:Integer):Integer; external;
end;
MyUtils.timeBeginPeriod(1);