定义像C ++中的常量

时间:2014-03-28 11:22:13

标签: c# c-preprocessor

假设我有一个文件从dll导入了许多函数,在我必须放入的每个函数之前:

[DllImport(DLL_NAME, CallingConvention = CallingConvention.Cdecl)]

但它很无聊,代码变得更长 - >更难理解,在 C 我可以使用这样的定义:

#define DLL_IMPORT [DllImport(...)]

我可以在C#中做些什么?

2 个答案:

答案 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