将dll函数导出到非托管程序

Jax*_*Jax 4 c#

如何导出我的c#dll函数以便能够从非托管程序中使用它们.

  • 例如:c#中的Dll和Delphi/c ++中的应用程序.

我没有exe的来源,因为不是Open S.不能使用COM.

Dav*_*nan 9

我建议使用Robert Giesecke的Unmanaged Exports.

  • @HansPassant:自那次评论以来你已经发现了2年多,但如果没有,它可以使用框架反向P/Invoke支持.(这使得您的程序集特定于平台.)基本上在IL中,您可以将`.export [1]`添加到方法中,以便在非托管导出表的第一个插槽中导出方法.编组thunk在运行时生成.像使用前向P/Invoke一样使用常规编组属性来自定义有效的本机签名.`.export`子句还采用可选的'as exported_name'子句,允许您在导出表中设置名称. (3认同)
  • 你的答案,顺便说一句,很容易就是"最好的"; 也许你应该把它添加到列表的其余部分:) (2认同)
  • 当然,我只是用C++/CLI来完成同样的事情.它只需要__declspec(dllexport).我可以设置一个断点. (2认同)