tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルFortran10で作成したDLLがVB2005で読み込めない。
記事No8946
投稿日: 2009/05/14(Thu) 15:24
投稿者従業員
vb2005+Intel Visual Fortran10を使用しております。

VS2005環境で、Intel Visual Fortran10を使用して、
簡単なサンプルによりDLLを作成してみました。
その結果、統合環境では、VB2005からDLLを呼び出すことができました。

しかし、そのDLLをVS2005やFortran言語がインストールされていない。
他のマシンにインストールして実行してみますと、VB2005の部分は起動し、
DLLを読むところまで来て、以下に示しますエラーとなってしまいます。

「アプリケーションのコンポーネントで、ハンドルされていない例外が
発生しました。・・・DLLを読み込めません」

この場合、DLLの作成方法に問題があるのか、VB2005側に問題があるのか、
検討がつきません。皆様のお知恵をお借りしたく質問させていただきます。
どうぞよろしくお願いいたします。

[ツリー表示へ]
タイトルRe: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8947
投稿日: 2009/05/14(Thu) 15:33
投稿者オショウ
> しかし、そのDLLをVS2005やFortran言語がインストールされていない。
> 他のマシンにインストールして実行してみますと、VB2005の部分は起動し、
> DLLを読むところまで来て、以下に示しますエラーとなってしまいます。

  要は、Fortran10 が必要とするランタイム(DLL)が不足している
  と云うことだと思いますが。

> この場合、DLLの作成方法に問題があるのか、VB2005側に問題があるのか、
> 検討がつきません。皆様のお知恵をお借りしたく質問させていただきます。

  初期起動はしているようなので、.NET Framework 2.0 のランタイム
  は入っているようです。

  因みにインストールと書いてありますが、それはインストーラを作成
  してインストールしたんですか?
  であれば、Fortran10 の依存関係情報の設定が抜けている為、作成さ
  れたFortran10のDLLだけが添付され、他の必要なものが抜けていると
  云うことだと思われます。

以上。

[ツリー表示へ]
タイトルRe^2: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8948
投稿日: 2009/05/14(Thu) 16:18
投稿者従業員
オショウさん
ありがとうございます。

インストールと書きましたのはVB2005の部分をビルドの発行で作成されました、
Setup.exeを実行し他のマシンにVBのメインルーチンをインストールしたものです。

FortranのDLLは手動でコピーしました。この辺が、まずいのでしょうか?

VS2005のプロジェクト依存関係のところで、依存先にチェックは入れてあります。

>   要は、Fortran10 が必要とするランタイム(DLL)が不足している

>   であれば、Fortran10 の依存関係情報の設定が抜けている為、作成さ
>   れたFortran10のDLLだけが添付され、他の必要なものが抜けていると
>   云うことだと思われます。

色々と試してみたのですが、
VBとFortranの二つを同時にインストールできるようなものはないのでしょうか?
FortranでつくられたDLLだけをコピーしたのでは、だめでしょうか?
ここのところが気になります。

[ツリー表示へ]
タイトルRe^3: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8949
投稿日: 2009/05/14(Thu) 17:25
投稿者オショウ
> FortranのDLLは手動でコピーしました。この辺が、まずいのでしょうか?

  そのDLLが必要とする他のDLLがないのか確認する必要があります。

  簡単に調べるならば・・・VB2005だけの製品をインストールされた
  んですか?

  DependencyWalker と云うものがあるので、それ使ってみれば、その
  DLLが別のDLLを必要としているか、解るのですが。

> 色々と試してみたのですが、
> VBとFortranの二つを同時にインストールできるようなものはないのでしょうか?

  Fotran10 の依存関係は、その作ったDLLのみで、そのDLLが別途必要
  としているものまでは、引っ張ってくれません。

  必須コンポーネントにFortran10を登録してチェックマークする必要
  があります。が、自動的には必須コンポーネント一覧にFortran10は
  出てきません。

  別途、登録設定する必要があります。
  その方法は・・・どこかのURLで見た覚えあるんですが・・・

  必須コンポーネントにFortran10を登録し、無ければインストールさ
  せれるようにはできると考えます。

以上。

[ツリー表示へ]
タイトルRe^4: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8950
投稿日: 2009/05/14(Thu) 17:54
投稿者従業員
オショウさん 返信ありがとうございます。

>   簡単に調べるならば・・・VB2005だけの製品をインストールされた
>   んですか?

Vsual Studio 2005 Team Edition をインストールしております。

>
>   DependencyWalker と云うものがあるので、それ使ってみれば、その
>   DLLが別のDLLを必要としているか、解るのですが。

ヘルプのバージョン情報を見る限り、DependencyWalkerはインストールされて
いないようです。また、インストールした記憶もございません。
とりあえず、これから、DependencyWalkerと云うものを調べてみたいと思います。
ありがとうございます。

以上

[ツリー表示へ]
タイトルRe^5: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8951
投稿日: 2009/05/14(Thu) 18:34
投稿者オショウ
> Vsual Studio 2005 Team Edition をインストールしております。
>
> ヘルプのバージョン情報を見る限り、DependencyWalkerはインストールされて
> いないようです。また、インストールした記憶もございません。
> とりあえず、これから、DependencyWalkerと云うものを調べてみたいと思います。
> ありがとうございます。

  x:Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin
  に、Depends.Exe と云うものがありますが、それです。

  探してみて下さい。

以上。

[ツリー表示へ]
タイトルRe^6: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8953
投稿日: 2009/05/14(Thu) 19:22
投稿者従業員
オショウさん
ありがとうございます。

探してみましたら、インストールされていました。

ファイルを開くで、VBのメインEXEを選択してみましたところ、
色々なDLLがでてきました。これから、色々と探ってみたいと思います。
しかし、お目当てのDLLが見つかりません!

以上

[ツリー表示へ]
タイトルRe^7: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8954
投稿日: 2009/05/14(Thu) 20:13
投稿者オショウ
> ファイルを開くで、VBのメインEXEを選択してみましたところ、
> 色々なDLLがでてきました。これから、色々と探ってみたいと思います。
> しかし、お目当てのDLLが見つかりません!

  ???
  Fortran10 で作成したDLLに不足しているランタイムDLLを
  探すのでは無かったのでしょうか・・・

以上。

[ツリー表示へ]
タイトルRe^8: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8955
投稿日: 2009/05/14(Thu) 21:51
投稿者従業員
オショウさん
返信ありがとうございます。

ああ〜、 私はいったい何を調べていたんでしょうか・・・。
と云う事は、問題となるDLLを開き、Windows以外のDLLが関連しているかと
いうことを調べればよいのでしょうか?

>   ???
>   Fortran10 で作成したDLLに不足しているランタイムDLLを
>   探すのでは無かったのでしょうか・・・

以上

[ツリー表示へ]
タイトルRe^9: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8956
投稿日: 2009/05/14(Thu) 22:25
投稿者オショウ
> ああ〜、 私はいったい何を調べていたんでしょうか・・・。
> と云う事は、問題となるDLLを開き、Windows以外のDLLが関連しているかと
> いうことを調べればよいのでしょうか?

  はい。その通り・・・
  Fortran10 で作成されたDLLを、DependencyWalkerで開けば
  多分、いくつかの依存するDLLが列挙されます。

  その中で恐らくFortran10関連のDLLとおぼしきものが見つかる
  はず・・・と思っていますが。

  その環境に無ければ、『!』マークが付いて情報取得できないDLL名
  が赤色になったはず・・・(違っていたらすいません)

以上。

[ツリー表示へ]
タイトルRe^10: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8958
投稿日: 2009/05/14(Thu) 22:51
投稿者従業員
オショウさん

こんばんは、お世話になります。

調べてみました結果、以下の3つのDLLが怪しいと思います。
C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBIFCOREMDD.DLL
C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBMMD.DLL
C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBMMDD.DLL
                        ↑ここの「\\」の意味は何でしょうか。
ネットワークでしょうか?

ファイルを調べてみましたところ、この3つのDLLは、上記のパスに存在いたします。

そこで、問題なんですが、この3つのDLLをアプリケーションの配布時にどうしたらよいか
という問題が浮上してまいりました。

例えば、自身はありませんが、パスがきれているフォルダーにコピーするとかでもよい
でしょうか・・・。

>   Fortran10 で作成されたDLLを、DependencyWalkerで開けば
>   多分、いくつかの依存するDLLが列挙されます。
>
>   その中で恐らくFortran10関連のDLLとおぼしきものが見つかる
>   はず・・・と思っていますが。

以上

[ツリー表示へ]
タイトルRe^11: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8959
投稿日: 2009/05/15(Fri) 01:53
投稿者オショウ
> 調べてみました結果、以下の3つのDLLが怪しいと思います。
> C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBIFCOREMDD.DLL
> C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBMMD.DLL
> C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBMMDD.DLL
>                         ↑ここの「\\」の意味は何でしょうか。
> ネットワークでしょうか?

  Fortran10 のインストール時のパス設定に何かミスありませんでしょうか?

> ファイルを調べてみましたところ、この3つのDLLは、上記のパスに存在いたします。

  C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib
  この『IA32』? CPUは、IA32環境なんですか?

  また、実際のパスは・・・
  C:\Program Files\Intel\Compiler\Fortran\10.1.030\IA32\Lib
  ですか?

> そこで、問題なんですが、この3つのDLLをアプリケーションの配布時にどうしたらよいか
> という問題が浮上してまいりました。

  手動で、アプリケーションフォルダに追加します。

  しかしながら、Fortran10のランタイムなるものが別途あるのでしょうか?
  あと、関連DLLを無償配布してよいのかどうか・・・
  ライセンスの確認をして下さい。

> 例えば、自身はありませんが、パスがきれているフォルダーにコピーするとかでもよい
> でしょうか・・・。

  Fortran10 の無償配布等ランタイムが無いのであれば、必要な上記DLLを
  インストーラでアプリケーションフォルダに入れれば動作するはずです。

  ランタイムがあるならば・・・当然、必須コンポーネントの設定を追加して
  インストーラでFortran10ランタイムのインストールを行わせる必要があり
  ます。

  もしくは手動でランタイムをインストールした後に製作されたインストーラ
  を実行してインストールする。

以上。

[ツリー表示へ]
タイトルRe^12: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8966
投稿日: 2009/05/15(Fri) 11:53
投稿者従業員
オショウさん
こんにちは、
ありがとうございます。

結果を申し上げますと、別のPCで動きました。
しかし、ここまで来るのに時間がかかってしまいました。返信が遅れました。
といいますのは、

以下の3つのDLLだけでは同じようにエラーとなってしましました。
> > C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBIFCOREMDD.DLL
> > C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBMMD.DLL
> > C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib\LIBMMDD.DLL


ランタイムということが記載されておりましたので、
Intelのフォルダーの中から順番にDLLをコピーしてアプリを実行しチェックしていった
結果、libifcoremd.dllを作成したFortranのDLLをコピーしたフォルダーにいれて
アプリを実行しますと動きました。これが、オショウさんが言っておられるランタイム
でしょうか・・・。


>   Fortran10 のインストール時のパス設定に何かミスありませんでしょうか?
この件に関しては、もう一台のパソコンも同じように表示されます。
設定上のミスはほぼ無いと思います。windowsのパスもそのようになっています。


>   C:\Program Files\Intel\Compiler\Fortran\10.1.030\\IA32\Lib
>   この『IA32』? CPUは、IA32環境なんですか?
CPUは、Pentium4 3.0GHz です。なにか、間違えておりますでしょうか?


>   また、実際のパスは・・・
>   C:\Program Files\Intel\Compiler\Fortran\10.1.030\IA32\Lib
>   ですか?
この通りとなっています。


>   しかしながら、Fortran10のランタイムなるものが別途あるのでしょうか?
>   あと、関連DLLを無償配布してよいのかどうか・・・
>   ライセンスの確認をして下さい。
この件は調べてみます。


>   ランタイムがあるならば・・・当然、必須コンポーネントの設定を追加して
>   インストーラでFortran10ランタイムのインストールを行わせる必要があり
>   ます。
ここで、いわれておりますインストーラはVS2005のものでよいのでしょうか?
DLLをコピーしてインストールするようなインストーラをご紹介いただけませんでしょうか。

どうぞよろしくお願いいたします。

以上

[ツリー表示へ]
タイトルRe^13: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8967
投稿日: 2009/05/15(Fri) 12:13
投稿者オショウ
> 結果を申し上げますと、別のPCで動きました。

  と言うのは、追加でDLLをコピーしなくてそのまま動作した
  と言うこよですか?

> ランタイムということが記載されておりましたので、
> Intelのフォルダーの中から順番にDLLをコピーしてアプリを実行しチェックしていった
> 結果、libifcoremd.dllを作成したFortranのDLLをコピーしたフォルダーにいれて
> アプリを実行しますと動きました。これが、オショウさんが言っておられるランタイム
> でしょうか・・・。

  libifcoremd.dll がないと動作せず、あると動作OKだったと言う結論
  ですか?

  これ1本だけをランタイムと言うかどうかは、解りません。
  インテルに確認された方がよろしいかと。

> この件に関しては、もう一台のパソコンも同じように表示されます。
> 設定上のミスはほぼ無いと思います。windowsのパスもそのようになっています。

  私もその辺、DependencyWalkerがそのような表示をしていることに
  原因が何か解りません・・・

> >   この『IA32』? CPUは、IA32環境なんですか?
> CPUは、Pentium4 3.0GHz です。なにか、間違えておりますでしょうか?

  Fortran10 のインストールされる内容をご確認下さい。

> ここで、いわれておりますインストーラはVS2005のものでよいのでしょうか?
> DLLをコピーしてインストールするようなインストーラをご紹介いただけませんでしょうか。

  私もVisualStudioで作成できるインストーラをカスタマイズして作って
  ますので・・・他社のもの・・・ありますが、もっと情報ないので難儀
  かと思いますが・・・

  VisualStudioのインストーラ作成で有用なサイト
  http://dobon.net/vb/dotnet/deployment/index.html

以上。参考まで

[ツリー表示へ]
タイトルRe^14: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8968
投稿日: 2009/05/15(Fri) 12:42
投稿者従業員
オショウさん
ありがとうございます。

どうも記述の仕方が悪くてすみません。

追加しなくては動きませんでした。
>   と言うのは、追加でDLLをコピーしなくてそのまま動作した
>   と言うこよですか?


以下に記載されている通りです。
>   libifcoremd.dll がないと動作せず、あると動作OKだったと言う結論
>   ですか?


> > >   この『IA32』? CPUは、IA32環境なんですか?
> > CPUは、Pentium4 3.0GHz です。なにか、間違えておりますでしょうか?
>   Fortran10 のインストールされる内容をご確認下さい。
IA32とIA64の両方をインストールしました。


>   私もVisualStudioで作成できるインストーラをカスタマイズして作って
>   ますので・・・他社のもの・・・ありますが、もっと情報ないので難儀
>   かと思いますが・・・
>
>   VisualStudioのインストーラ作成で有用なサイト
>   http://dobon.net/vb/dotnet/deployment/index.html
情報どうもありがとうございます。

以上

[ツリー表示へ]
タイトルRe^15: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8973
投稿日: 2009/05/15(Fri) 19:22
投稿者オショウ
> > > >   この『IA32』? CPUは、IA32環境なんですか?
> > > CPUは、Pentium4 3.0GHz です。なにか、間違えておりますでしょうか?
> >   Fortran10 のインストールされる内容をご確認下さい。
> IA32とIA64の両方をインストールしました。

  これで動くと言うのもどうかと・・・
  ライブラリとCPUが違う・・・どうなってんの?

※ 残念ながらFortran10は使ったことないので解りません。
  汎用機ではFORTRAN使いだったんですが・・・

以上。

[ツリー表示へ]
タイトルRe^16: Fortran10で作成したDLLがVB2005で読み込めない。
記事No8974
投稿日: 2009/05/16(Sat) 10:33
投稿者魔界の仮面弁士
> > > > >   この『IA32』? CPUは、IA32環境なんですか?
> > > > CPUは、Pentium4 3.0GHz です。なにか、間違えておりますでしょうか?
> > >   Fortran10 のインストールされる内容をご確認下さい。
> > IA32とIA64の両方をインストールしました。
>   ライブラリとCPUが違う・・・どうなってんの?

両方がインストールされていて、そのうち、IA32 が使われているのでは無いでしょうか。
(Pentium 4 などの x86 系プロセッサは、IA-32 のアーキテクチャですよね)


> ※ 残念ながらFortran10は使ったことないので解りません。

同じく。。。

[ツリー表示へ]