有人可以告诉我在哪里可以找到如何在Oxygene for .NET中制作DLL(WindowsControlLibrary)的例子吗?
在旧的Delphi中,您可以创建导出部分。
答案 0 :(得分:2)
要使用Delphi Prism创建非托管DLL导出并使用Delphi 2010调用它,您必须执行以下操作:
在Delphi Prism中:
按OK。
这将为Windows类库创建模板
右键单击项目“ClassLibraryX”并选择属性:
这会设置项目以支持UnmanagedExportAttribute。
然后在代码中,您将需要创建一个类方法。在下面的示例中,我添加了对System.Windows.Forms的引用。
namespace ClassLibrary2;
interface
type
Class1 = public class
private
protected
public
[UnmanagedExport('ShowMessage')]
class method ShowMessage(aMsg : String);
end;
implementation
class method Class1.ShowMessage(aMsg : String);
begin
System.Windows.Forms.MessageBox.Show(aMsg);
end;
end.
使用PEViewer,我使用JCL中作为示例提供的那个,您应该能够看到新的导出。在上面的例子中“ShowMessage”
答案 1 :(得分:1)
如果你想让它与delphi兼容,你必须指出一个“stdcall”呼叫约定
namespace ClassLibrary2;
界面
型 Class1 =公共类
私人
受保护
公共[UnmanagedExport('ShowMessage'),System.Runtime.InteropServices.CallingConvention.StdCall]
类方法ShowMessage(aMsg:String); 结束;
实施
类方法Class1.ShowMessage(aMsg:String);
开始
System.Windows.Forms.MessageBox.Show(AMSG);
端;
端。