掲示板一覧   -   トピック一覧
   EA ソースコード生成・コード生成テンプレート
     オブジェクト指向モードでのC言語のenumの同期がうまくいかない


スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
tkouno
投稿日時: 2011-3-3 13:12
EA Administrator
投稿: 4286

オブジェクト指向モードでのC言語のenumの同期がうまくいかない

サポートに寄せられたご質問の要約です。

○ご質問

C言語で、オブジェクト指向モードの場合に、あるクラスと列挙(enum)要素を同じファイルに出力した場合に、
enum要素の内容を更新して同期処理を行うとenum宣言が増えてしまいます。

同期する方法はありますか?

○回答

現状の結論として、ご要望の状況には対応できないことがわかりました。

「オブジェクト指向のサポート」の設定がTrueの場合には、
対象のコード中のstructをクラスの属性として認識するなど、ソースコードの
内容をそのまま認識するのではなく、内部処理を行ってクラス図に反映させて
います。

この内部処理の中で、他のstructやenumrationなどは、無視する形になっており
結果的に、ご指摘の状況が起きています。
(この背景(内部の挙動のルール)については、セミナー『Enterprise Architect
ースコード生成ルール カスタマイズ 実践セミナー』で説明しています。)


ヘルプファイルには、このことを「オブジェクト指向の考え方を反映させた
C言語のコード生成と読み込み」のページでお伝えしており既知の制限になります。


ご要望に沿えず、申し訳ございません。
対処方法としては、以下のようになります。

・列挙の定義を、単独のヘッダファイルに生成し、クラス側ではそのヘッダ
 ファイルを読み込む形にする
・上記のように「オブジェクト指向のサポート」の設定がTrueの場合には
 動作しないので、列挙要素だけ設定を変更する。
 (列挙要素の「ソースコードの生成」画面で「追加設定」ボタンを押すことで
  要素ごとに設定を変更することができます。)
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ