假设我有一个文件从dll导入了许多函数,在我必须放入的每个函数之前:
[DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)]
但它很无聊,代码变得更长 - >更难理解,在 C 我可以使用这样的定义:
#define DLL_IMPORT [DllImport(...)]
我可以在C#中做些什么?
答案 0 :(得分:3)
你运气不好。 DllImport属性是密封的,因此您无法派生实例并默认参数,而C#没有宏处理器可以让您解决此问题。
答案 1 :(得分:1)
您可以使用P/Invoke Interop Assistant让您的工作更轻松一些。此工具自动从本机签名生成托管p / invoke声明(在C#或VB中)。 http://blogs.msdn.com/b/bclteam/archive/2008/06/23/p-invoke-interop-assistant-justin-van-patten.aspx