2017-02-10 10 views
0

問題:CとC#の間のインターフェイスは、どちらも同じ列挙型の値を使用する必要があります。手動変換は、何かが変化しているときに問題を起こすことがあります。TT c-> c#typedef列挙型を処理するためのHo

私たちは会話のためにttテンプレートを使用しようとしています。

問題:ttのtypedef列挙型の変換方法がわかりません。

typedef enum{ 
    val1=0, 
    val2, 
}enumName_eTypeDef; 

列挙型では、1行ずつコピーします。

if (def.StartsWith("enum")) 
    { 
#> 
     public <#=def#> 
    <# 
     while (defines.Peek() >= 0) 
     { 
      string def1 = defines.ReadLine(); 

      def1 = def1.Trim(); 
    #> 
      <#=def1#> 
    <# 
      if(def1.StartsWith("};")) 
      { 
    #> 
    <# 
      break; 
      } 
     } 
    } 

しかし、私はどのように "enumName_eTypeDef"を取得するtypedef列挙型でこれを行うでしょうか?

+1

「ttテンプレート」とは何ですか? – sab669

+0

C++/CLIを使ってみましたか? –

+0

T4テキストテンプレート、https://msdn.microsoft.com/en-us/library/bb126445.aspx – Offler

答えて

0

2つの間のインターフェイスについては、限られた数の列挙体しか必要としないため、Cの中の#defineと置き換えることができます。それであなたは彼らが同じであることが保証されます。

+0

を参照してください。こんにちはPaul、T4テキストテンプレート(https://msdn.microsoft.com)で置き換えを使用することです。 /en-us/library/bb126445.aspx)。変更可能なエントリは約80個あり、自動化されたメカニズムを使用する必要があります。列挙型は簡単なスイッチの場合に両方で使用されるので、定義は実際には解決策ではありません – Offler

関連する問題