掲示板一覧 - トピック一覧 EA ソースコード生成・コード生成テンプレート オブジェクト指向モードでのC言語のenumの同期がうまくいかない |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | トピック |
---|---|
tkouno | 投稿日時: 2011-3-3 13:12 |
EA Administrator 投稿: 4288 |
オブジェクト指向モードでのC言語のenumの同期がうまくいかないサポートに寄せられたご質問の要約です。
○ご質問 C言語で、オブジェクト指向モードの場合に、あるクラスと列挙(enum)要素を同じファイルに出力した場合に、 enum要素の内容を更新して同期処理を行うとenum宣言が増えてしまいます。 同期する方法はありますか? ○回答 現状の結論として、ご要望の状況には対応できないことがわかりました。 「オブジェクト指向のサポート」の設定がTrueの場合には、 対象のコード中のstructをクラスの属性として認識するなど、ソースコードの 内容をそのまま認識するのではなく、内部処理を行ってクラス図に反映させて います。 この内部処理の中で、他のstructやenumrationなどは、無視する形になっており 結果的に、ご指摘の状況が起きています。 (この背景(内部の挙動のルール)については、セミナー『Enterprise Architect ースコード生成ルール カスタマイズ 実践セミナー』で説明しています。) ヘルプファイルには、このことを「オブジェクト指向の考え方を反映させた C言語のコード生成と読み込み」のページでお伝えしており既知の制限になります。 ご要望に沿えず、申し訳ございません。 対処方法としては、以下のようになります。 ・列挙の定義を、単独のヘッダファイルに生成し、クラス側ではそのヘッダ ファイルを読み込む形にする ・上記のように「オブジェクト指向のサポート」の設定がTrueの場合には 動作しないので、列挙要素だけ設定を変更する。 (列挙要素の「ソースコードの生成」画面で「追加設定」ボタンを押すことで 要素ごとに設定を変更することができます。) |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |