過去にそのようなことをしなければならなかったとき、私はビルドプロセスに追加のプリコンパイルステップを追加しただけで、あるファイルを別のファイルから自動的に作成します。
定数はおそらくC#のクラス内にあるため、ソースファイルとして使用できます。
MyClass.cs:
class MyClass {
public const int NUM_MONTHS = 12; //COMMON
public const int YEAR_BASE = 1900; //COMMON
}
grep '//COMMON' MyClass.cs
| sed -e 's/^ *public const [a-z][a-z]*/#define/'
-e 's/ *= */ /'
-e 's/;.*$//'
>MyClass.h
grep '//COMMON' MyClass.cs | sed -e 's/ *public //' -e 's/;.*$/;/' >MyClass.hpp
これはあなたに与えるでしょう:
MyClass.h:
#define NUM_MONTHS 12
#define YEAR_BASE 1900
MyClass.hpp:
const int NUM_MONTHS = 12;
const int YEAR_BASE = 1900;
さて、Visual Studioにそのステップを実行させることは、私が行う方法を知っていることではありません。それが可能かどうかを調査する必要があります。UNIXyのテキスト処理ツールは本当にダウンロードする価値があります。私はいくつかのボックスにCygWinをインストールしていますが、これをローカライズしたものについては、個々のGnuWin32パッケージを使用することができます。
PowerShellでも同様の作業を行うことができますが、私はそれに精通していません。
さて、それはちょっとした悩みの種ですので、あなたの特定の質問に対しておそらくより良い方法を提案することができます。定数は一切使用しないでください。アドレスを構成ファイルに入れ、起動時にC#およびC++コードに読み取らせます。
そうすれば、簡単に値を共有でき、将来変更したい場合に備えて構成できます。