Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在C#脚本中封送宏?_C#_Macros_Interop_Dllimport - Fatal编程技术网

如何在C#脚本中封送宏?

如何在C#脚本中封送宏?,c#,macros,interop,dllimport,C#,Macros,Interop,Dllimport,如果在C中有这样的宏: #define SLICE_VERSION 20110614 如何在C#脚本中使用此宏 我应该处理它吗?怎么做 我应该用C重新定义它吗?我知道C#没有#define宏,但也许我可以将它定义为一个静态变量 或者我可以参考一下吗 类似地,如果在C中有一个全局变量,如何在C#script中使用它 我看过从C/C++到C#的关于封送类、结构、数组、联合和许多其他内容的教程,但是我没有找到任何关于如何封送常量的提示。。。还是要我来处理?可以直接参考吗 顺便说一句,我发现这是一个

如果在C中有这样的宏:

 #define SLICE_VERSION 20110614
如何在C#脚本中使用此宏

我应该处理它吗?怎么做

我应该用C重新定义它吗?我知道C#没有#define宏,但也许我可以将它定义为一个静态变量

或者我可以参考一下吗

类似地,如果在C中有一个全局变量,如何在C#script中使用它

我看过从C/C++到C#的关于封送类、结构、数组、联合和许多其他内容的教程,但是我没有找到任何关于如何封送常量的提示。。。还是要我来处理?可以直接参考吗

顺便说一句,我发现这是一个关于Mono上互操作的非常好的教程:

我应该用C重新定义它吗

对。在C#中,您需要使用
常量

const int SLICE_VERSION = 20110614;
尽管如此,我还是会经常将其重命名,使其更符合C标准:

const int SliceVersion = 20110614;

根据它的使用方式,您可能还希望显式地指定一个。此外,根据使用情况,您可能需要使用不同的类型(Int32可能不正确-您可能需要UInt32,等等)。C/C++中宏的一个缺点是它们不是强类型的,因此如果不了解用法,就无法知道此处所需的确切类型。

谢谢!我会这样做的。调用函数需要一个uint,所以我将它定义为const uint。。。