No single-threaded DLL option
TRNSYS-Usersを見ていたら、FORTRANコンパイラの設定の質問が流れていました。
[TRNSYS-users] No single-threaded DLL option
Type29をビルドしなおしてみたら、コンポーネントからのファイル作成時にエラーになってしまうようです。現象としては”fort.xxx”というファイルの書出しに失敗するというもの。
対策としてコンパイラの設定を変更しようとしたけど、該当項目がない。しょうがないのでWindowsXpとCompaq Fortranで対応したどWindows7の環境で何とかならんの?という質問。
これと全く同じ話で最近悩んだので、以下、備忘のため書いておきます。
質問者のメールには書いてないけど、この件の対策の元ネタはTRNSYSのドキュメントの以下の記載。
7.5.2.6. Troubleshooting multiple DLL’s
ここに原因と対策が記載されているんですが、悩んだのが対策の記述。
set “Project Settings\Fortran\Libraries” to “Single-threaded DLL” in the Visual Studio
Visual Studioでライブラリーの設定を変更しろとありますが、Intel Visual Fortran(以下、IVF)のライブラリーの設定に”Single-threaded DLL”って無いんです。
でも、IVFの場合はここで、単に”Mutli-threaded DLL”を選べばOK。エラーの原因になるのはSingleかMultiかの違いじゃなくて、ライブラリーをDLLにしているかStaticにしているかの違いです。
ということで”DLL”の方を選べばOKです。
実際の設定画面のキャプチャーを載せておきます。
- Release
- Debug
ただ注意しないといけないのは、TRNDLL側も同じ設定にしてビルドしないと、やっぱりエラーになります。