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++]の順で選択します。
エクスポート先のフォルダとファイル名は次のようにしてください。
- エクスポート先のフォルダとして”C:TRNSYS18\MyTypes“を指定(MyTypesがない場合は作成する)
- ファイル名、”Type201Heater.cpp“を指定する。
- 「保存」ボタンをクリックしてダイアログを閉じる。
ソースコードができたら、次はVisual Studio 2019 を使って開発用プロジェクトを用意します。
新しいプロジェクトの作成
コンポーネント開発用にVisual Studioの新しいプロジェクトを用意します。
Visual Studioを起動して、メニューから[ファイル]-[新規作成]-[プロジェクト]の順で選択します。
図のような画面が表示されたら「新しいプロジェクトを作成」をクリックします。
次にプロジェクトの種類を指定します。
- ドロップダウンリストで左から順に C++、Windows、ライブラリ を選択する。
- 「ダナミック リンク ライブラリ(DLL)」をクリックして選択する。
- 「次へ」をクリックする。
新しいプロジェクトの名前と作成先のフォルダを指定します。TRNSYSでは伝統的に”C:\TRNSYS18\Compilers\TRNSYS”フォルダにプロジェクトを作ります。今回もそれに倣って、フォルダを設定します。
- 「プロジェクト名」へコンポーネントの名前に合せて”Type201Heater“を入力する。
- 「場所」へ”C:\TRNSYS18\Compilers\TRNSYS”を指定する。
- 「ソリューションとプロジェクトを同じディレクトリに配置する」のチェックを外す。
- 「作成」をクリックする。
プロジェクトが作成されて以下のような画面になります。
これでDLLのプロジェクトが出来上がりました。このプロジェクトにTRNSYSのソースコードを組み込んでいきます。
プロジェクト設定
Visual Studioは本格的な開発ツールです。コンパイルの条件など詳細な設定が可能です。便利な反面、下手に手を出すとビルドができなくなる事もあります。このためなるべく初期状態の設定をそのまま使って、必要な箇所だけ変更する方針で設定を行います。
ソリューションの設定
TRNSYS18は64bitのプログラムです。コンポーネントもそれに合せてソリューションの項目で図のように「Release」、「x64」を選択します。
ソースコードを追加する
先ほどエクスポートしたソースコードをプロジェクトのフォルダへ追加します。
「C:\TRNSYS18\MyTypes」フォルダからType201Heater.cppをプロジェクトフォルダ、「C:\TRNSYS18\Compilers\TRNSYS\Type201Heater\Type201Heater」へコピーします。
次にプロジェクトにプロジェクトへソースコードを追加します。
- 「ソリューションエクスプローラー」で「ソースコード」の項目で右クリック、表示されたメニューで[追加]-[既存の項目]を選択する。
- Type201Heater.cppを選択する。
- 「追加」をクリックしてプロジェクトへソースコードへ追加する。
プリコンパイルヘッダー
ソースコードを開いて、次の一行を追加する。ここはおまじないだと思って何も考えずに一行追加して下さい。
#include "pch.h"
図の位置に1行追加します。
ヘッダーファイル(TRNSYS.h)
TRNSYSのヘッダーファイル(TRNSYS.h)のパスを追加します。
ソリューションエクスプローラーでプロジェクトを選択、右クリックで表示されたメニューから「プロパティ」を選択します。
- 「構成」で「すべての構成」を選択する。
- 構成プロパティの「C/C++」、「全般」選択する。
- 「追加のインクルードディレクトリ」の項目に”C:\TRNSYS18\SourceCode\Templates”を入力する。
ライブラリ設定
TRNSYSのライブラリ(TRNLIB64.lib)の設定を追加します。
- 「構成」で「すべての構成」を選択する。
- 構成プロパティの「リンカー」、「全般」選択する。
- 「追加のライブラリディレクトリ」の項目に”C:\TRNSYS18\Exe”を入力する。
- 「リンカー」、「入力」を選択する。
- 「追加の依存ファイル」の項目で下向き「∨」をクリックする。
- 「追加の依存ファイル」へTRNDll64.libを入力する。
- 「OK」をクリックしてダイアログを閉じる。
- 「追加の依存ファイル」の項目が図のようになっているを確認する。
ビルドイベント
ビルド後にDLLをTRNSYSのフォルダにコピーするように設定します。
- 「ビルドイベント」、「ビルド後のイベント」を選択する。
- 「コマンドライン」の項目へ次の一行を追加する。
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
1件のピンバック
C++コンポーネントの作り方(2)実装 | 建築環境工学系日記