C++コンポーネントの作り方(1)準備

C/C++を使ったTRNSYSコンポーネントの作り方の解説です。TypeStudioを使ってFORTRANで作る方法もありますが、たまにはC/C++作りたいケースがあります。例えば、次のようなケース。

  • C/C++に慣れている(FORTRANは詳しくない)
  • 使いたいライブラリがC/C++
  • すでにC/C++で作ったプログラムをTRNSYSで使いたい
  • その他、C/C++を試したい

以下、C/C++の開発環境は一般的によく使われるVisual Studioを使って解説しています。Visual Studio Professionalを使っていますが、無償で使用できるCommunity版でも開発方法は同じです。

TRNSYS18からは標準でC/C++の開発用にヘッダーファイルが用意されています。今回はこのヘッダーファイルを使って、C/C++でコンポーネントを作成します。

Proformaの準備

Proformaはコンポーネントの雛形です。新しいコンポーネントを作成する場合には、はじめに作成する必要があります。

作り方は以前の記事で解説しているので、そちらを参考にしてください。今回作成するコンポーネントも同じ式を使うので、リンク先の記事に沿ってまったく同じProformaを作成します。

ソースコードのエクスポート

作成したProformaからソースコードの雛形をエクスポートします。

Simulation Studioのメニューから[File]-[Export as…]-[C++]の順で選択します。

エクスポート先のフォルダとファイル名は次のようにしてください。

  1. エクスポート先のフォルダとして”C:TRNSYS18\MyTypes“を指定(MyTypesがない場合は作成する)
  2. ファイル名、”Type201Heater.cpp“を指定する。
  3. 「保存」ボタンをクリックしてダイアログを閉じる。

ソースコードができたら、次はVisual Studio 2019 を使って開発用プロジェクトを用意します。

新しいプロジェクトの作成

コンポーネント開発用にVisual Studioの新しいプロジェクトを用意します。

Visual Studioを起動して、メニューから[ファイル]-[新規作成]-[プロジェクト]の順で選択します。

図のような画面が表示されたら「新しいプロジェクトを作成」をクリックします。

次にプロジェクトの種類を指定します。

  1. ドロップダウンリストで左から順に C++、Windows、ライブラリ を選択する。
  2. ダナミック リンク ライブラリ(DLL)」をクリックして選択する。
  3. 次へ」をクリックする。

新しいプロジェクトの名前と作成先のフォルダを指定します。TRNSYSでは伝統的に”C:\TRNSYS18\Compilers\TRNSYS”フォルダにプロジェクトを作ります。今回もそれに倣って、フォルダを設定します。

  1. 「プロジェクト名」へコンポーネントの名前に合せて”Type201Heater“を入力する。
  2. 「場所」へ”C:\TRNSYS18\Compilers\TRNSYS”を指定する。
  3. 「ソリューションとプロジェクトを同じディレクトリに配置する」のチェックを外す。
  4. 作成」をクリックする。

プロジェクトが作成されて以下のような画面になります。

これでDLLのプロジェクトが出来上がりました。このプロジェクトにTRNSYSのソースコードを組み込んでいきます。

プロジェクト設定

Visual Studioは本格的な開発ツールです。コンパイルの条件など詳細な設定が可能です。便利な反面、下手に手を出すとビルドができなくなる事もあります。このためなるべく初期状態の設定をそのまま使って、必要な箇所だけ変更する方針で設定を行います。

ソリューションの設定

TRNSYS18は64bitのプログラムです。コンポーネントもそれに合せてソリューションの項目で図のように「Release」、「x64」を選択します。

ソースコードを追加する

先ほどエクスポートしたソースコードをプロジェクトのフォルダへ追加します。

「C:\TRNSYS18\MyTypes」フォルダからType201Heater.cppをプロジェクトフォルダ、「C:\TRNSYS18\Compilers\TRNSYS\Type201Heater\Type201Heater」へコピーします。

次にプロジェクトにプロジェクトへソースコードを追加します。

  1. 「ソリューションエクスプローラー」で「ソースコード」の項目で右クリック、表示されたメニューで[追加]-[既存の項目]を選択する。
  2. Type201Heater.cppを選択する。
  3. 「追加」をクリックしてプロジェクトへソースコードへ追加する。

プリコンパイルヘッダー

ソースコードを開いて、次の一行を追加する。ここはおまじないだと思って何も考えずに一行追加して下さい。

#include "pch.h"

図の位置に1行追加します。

ヘッダーファイル(TRNSYS.h)

TRNSYSのヘッダーファイル(TRNSYS.h)のパスを追加します。

ソリューションエクスプローラーでプロジェクトを選択、右クリックで表示されたメニューから「プロパティ」を選択します。

  1. 「構成」で「すべての構成」を選択する。
  2. 構成プロパティの「C/C++」、「全般」選択する。
  3. 「追加のインクルードディレクトリ」の項目に”C:\TRNSYS18\SourceCode\Templates”を入力する。

ライブラリ設定

TRNSYSのライブラリ(TRNLIB64.lib)の設定を追加します。

  1. 「構成」で「すべての構成」を選択する。
  2. 構成プロパティの「リンカー」、「全般」選択する。
  3. 「追加のライブラリディレクトリ」の項目に”C:\TRNSYS18\Exe”を入力する。
  1. 「リンカー」、「入力」を選択する。
  2. 「追加の依存ファイル」の項目で下向き「∨」をクリックする。
  1. 「追加の依存ファイル」へTRNDll64.libを入力する。
  2. 「OK」をクリックしてダイアログを閉じる。
  1. 「追加の依存ファイル」の項目が図のようになっているを確認する。

ビルドイベント

ビルド後にDLLをTRNSYSのフォルダにコピーするように設定します。

  1. 「ビルドイベント」、「ビルド後のイベント」を選択する。
  2. 「コマンドライン」の項目へ次の一行を追加する。
copy $(Platform)$(Configuration)$(TargetFileName) C:\TRNSYS18\UserLib\ReleaseDLLs\*.*

この段階でビルドを実行、TRNSYSのフォルダ(C:\TRNSYS18\UserLib\ReleaseDLLs)にType201Heater.dllが作成されてるのを確認してください。

ここまででプロジェクトの準備は完了です。次はいよいよソースコードの編集ですが、長くなってきたので次回へ続きます。

動作環境

以下の環境で動作を確認しています。

  • Windows10 Pro(64bit, 21H1)
  • TRNSYS18.04.0000(64bit)
  • Microsoft Visual Studio Professional 2019
Pocket

1件のピンバック

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です