0

Cでこのようなマクロがある場合:

 #define SLICE_VERSION 20110614

このマクロをC#スクリプトで使用するにはどうすればよいですか?

マーシャリングする必要がありますか?どのように?

C#で再定義する必要がありますか?C#には#defineマクロがないことは知っていますが、静的変数として定義することもできます。

それとも、どういうわけかそれを参照できますか?

同様に、Cにグローバル変数がある場合、C#スクリプトでどのように使用しますか?

クラス、構造体、配列、ユニオンなど、C / C ++からC#までの多くのマーシャリングに関するチュートリアルを見てきましたが、定数をマーシャリングする方法についてのヒントを見つけることができませんでした...またはマーシャリングする必要がありますかそれ?直接参照できますか?

ところで、私はこれがMonoでの相互運用についてのかなり良いチュートリアルだと思いました:http ://www.mono-project.com/Interop_with_Native_Libraries#Introduction

4

1 に答える 1

2

C#で再定義する必要がありますか?

はい。C#では、const:を使用する必要があります。

const int SLICE_VERSION = 20110614;

そうは言っても、C#標準にするために、これの名前を変更することがよくあります。

const int SliceVersion = 20110614;

使用方法によっては、アクセス修飾子も明示的に指定する必要があります。また、使用法によっては、別のタイプを使用することもできます(Int32が正しくない場合があります。UInt32などが必要な場合があります)。C / C ++のマクロの欠点の1つは、強く型付けされていないことです。そのため、使用法を確認しないと、ここで予期される正確な型を知る方法がありません。

于 2012-04-07T20:40:39.667 に答える