Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: 開発環境のパソコン以外で実行型ファイルが起動しない


This question is not answered. Helpful answers available: 2. Correct answers available: 1.


Permlink Replies: 14 - Last Post: Jul 7, 2014 6:08 PM Last Post By: Nakano Shintaro
Nakano Shintaro

Posts: 22
Registered: 8/25/04
開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 24, 2014 10:37 PM
こんにちは、中野と申します。

データベース系のプログラムを作りながら、データベースの取り扱いを勉強しています。

連日の質問で申し訳ございません。

開発環境のパソコンでは、クライアントアプリケーションは動作していますが、他のパソコ
ンに実行型ファイルを移動すると起動しません。

たぶん、開発環境以外のパソコンに自作したデータベース系アプリケーションのセットアップ
が出来ていない事が原因なのですが、知識不足で解りません。

Setup.exeの様なセットアップディスクは作成せずに、ビルド構成Releaseの中身をそのままフォルダー
ごと、動作確認を行いたいパソコンへコピーしています。

<開発環境の状態>
購入した製品:C++Builder XE5(Update2) Enterprise
OS:Windows7 64ビット
InterBase:購入した製品にインストールされていたInterBaseを使用

<動作環境を行っているパソコン>
OS:Windows7 64ビット
InterBase:InterBase XE3 (11.0.3.655) Developer Edition, Japanese
接続タイプ:ローカル接続
※InterBaseは、エンバカデロ社に問い合わせた所、開発環境以外のパソコンで動作確認を行うには、上記の
「InterBase XE3 (11.0.3.655) Developer Edition, Japanese 」をダウンロードする様にと指示がありました。

動作確認を行うパソコンのOSが入っているCドライブに、クライアントアプリケーションを保存。
保存したディレクトリに「rtl190.bpl」と「ibclient64.dll」を一緒に保存してあります。

データベース本体は、Eドライブに保存しています。

実際に実行型ファイルをクリックすると
「アプリケーションを正しく起動できませんでした(0x000007b)。[ok]をクリックしてアプリケーションを
閉じてください。」
と表示されます。

下記のリンク先も参考にさせて貰いましたが、起動が出来ずに困っています。
[何度も出てくるので Firebird の接続方法 (Delphi Forum)]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1255
[InterBase XE 64bit版(Windows) 日本語版 を試す (Team Japan)]
http://blogs.embarcadero.com/teamj/2011/04/19/1907/
※ディスカッションで質問お題:「データエクスプローラからInterBaseに接続する」で質問させて貰いました。

開発環境のパソコンでは動いているので、「rtl190.bpl」と「ibclient64.dll」の配置場所(保存する場所?)が
違うのか、それとも、クライアントアプリケーションにまだ何か足りない内容があるのか、結局の所、知識不足
で解りません。

使用しているデータベースコンポーネントは、DBXコンポーネントを使用しています。

まだ、データベースに関して理解していない部分が多いのですが、開発環境のパソコン以外での動作
確認に関して、参考になるインターネットサイトや書籍等ございましたら教えて貰えると助かります。

お忙しいところ、よろしくお願いします。
Hideaki Tominaga


Posts: 25
Registered: 4/14/97
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 25, 2014 1:12 AM   in response to: Nakano Shintaro in response to: Nakano Shintaro
[プロジェクト | オプション] を開き、

・[パッケージ | 実行時パッケージ] にある、"実行時パッケージを使ってリンク" を False にする
・[C++リンカ] にある、"動的 RTL とリンク" を False にする

そしてプロジェクトを再構築。

こうして出来上がった EXE で試してみてください。

See Also:
[はじめたての C++Builder XE3 (EXE 配布の際の注意点) (いがぴょんの日記)]
http://d.hatena.ne.jp/igapyon/20121205

--
Hideaki Tominaga (DEKO)
Nakano Shintaro

Posts: 22
Registered: 8/25/04
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 25, 2014 5:42 PM   in response to: Hideaki Tominaga in response to: Hideaki Tominaga
こんにちは、
Hideaki Tominaga 様、アドバイス有難うございます。

[プロジェクト | オプション] を開き、

・[パッケージ | 実行時パッケージ] にある、"実行時パッケージを使ってリンク" を False にする
・[C++リンカ] にある、"動的 RTL とリンク" を False にする

そしてプロジェクトを再構築。

こうして出来上がった EXE で試してみてください。

See Also:
[はじめたての C++Builder XE3 (EXE 配布の際の注意点) (いがぴょんの日記)]
http://d.hatena.ne.jp/igapyon/20121205

教えて貰った内容で、無事にアプリケーションは起動しました。
ありがとうございます。

ただ、自作したデータベース(IBConsoleで作ったデータベース)が選択できなくてアプリケーション全体の
動作確認までは至っていません。
アプリケーションの動作は、サーバーマシンにしたパソコンを検索?、データベースを探し出し、データベース
名をコンボボックスにリストアップする方法を取りましたが、実際はリストには載っていない。
丁度、初期化されたdbExpressの中身を検知し、リストアップしている状態です。
こちらは、少し自力で問題解決したいと考えています。

また、他のことで質問するかも知れませんが、よろしくお願いします。
Hideaki Tominaga


Posts: 25
Registered: 4/14/97
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 26, 2014 5:05 AM   in response to: Nakano Shintaro in response to: Nakano Shintaro
こんにちは、
ただ、自作したデータベース(IBConsoleで作ったデータベース)が選択できなくて

[何度も出てくるので Firebird の接続方法]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1255

に書いてあったかと思いますが、

例えば、Delphi の IDE でデータエクスプローラを使うには、
64bit Windows 上で 64bit アプリケーションを作っていようが、
必ず 32bit 版のクライアント DLL が必要となります。
これは IDE が 32bit アプリケーションであるからです。

32bit の環境を構築されていますか?

--
Hideaki Tominaga (DEKO)
Nakano Shintaro

Posts: 22
Registered: 8/25/04
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 26, 2014 9:28 PM   in response to: Hideaki Tominaga in response to: Hideaki Tominaga
こんにちは、
Hideaki Tominaga 様、アドバイス有難うございます。


[何度も出てくるので Firebird の接続方法]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1255

に書いてあったかと思いますが、

例えば、Delphi の IDE でデータエクスプローラを使うには、
64bit Windows 上で 64bit アプリケーションを作っていようが、
必ず 32bit 版のクライアント DLL が必要となります。
これは IDE が 32bit アプリケーションであるからです。

32bit の環境を構築されていますか?

結論から言うと、
例えば、Delphi の IDE でデータエクスプローラを使うには、
64bit Windows 上で 64bit アプリケーションを作っていようが、
必ず 32bit 版のクライアント DLL が必要となります。
これは IDE が 32bit アプリケーションであるからです。
の中の
必ず 32bit 版のクライアント DLL が必要となります。
部分が解っていない可能性が大きいです。
[何度も出てくるので Firebird の接続方法 (Delphi Forum)]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1255
に出てくるローカル接続部分の図とサイト内の注意事項を参考に、
実行型ファイルがある所に、
gds32.dll
ibclient64.dll
の2つを一緒に保存してあります。

これでも動作しなかったので、自分なりにインターネット情報などを参考に下記の内容を変更してみました。
アプリケーションでは、DBX SQLConnectionでdbxconnections.iniファイルを呼び出して
いるので、開発環境下のdbxconnections.iniを含む6つのファイルを動作確認しているパソコン
へコピーしました。

これで、開発環境で使用していたデータベースを指定することが出来るようになりました。
※後々の事を考えると、dbxconnections.iniを読み込むのではなく、DBX SQLConnection内の
Paramsで指定するのが良いのかと思っています。

ただ、開発環境で使用していたデータベースを指定すると下記のエラーがでたのでパスを切り替えました。
<エラーメッセージ内容>
Unable to load dbxint.dll (Error Code 126). It may be missing from tha system path.
※エラーコードは、126と193の2つ表示がありました。
こちらは、dbxconnections.ini内のdbxint.dllパス指定部分を動作環境しているパソコンのパスに変更しました。
dbxint.dllファイルですが、32ビット用?ですと動きませんでした。
そこで、64ビット用?に切り替えたところ、データベースを指定後にテーブル選択が出来るようになりました。
dbxint.dllは同じファイル名で2種類あり、開発環境下のパソコンには
32ビット用:dbxint.dll 287KB
64ビット用:dbxint.dll 1079KB
となっていたので、64ビット用?を使用しました。

今現在は、違うエラーメッセージが表示されています。
<エラーメッセージ内容その2>
Error loading MIDAS.DLL.
このエラーメッセージを調べると、ClientDataSetを使用した時には必ずMIDAS.DLLをリンクさせる様にと
下記のリンク先に記載がありました。
http://docwiki.embarcadero.com/RADStudio/XE5/ja/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%85%8D%E7%BD%AE
ただ、リンク方法が解らずに苦戦しています。
DataSnap機能の一部?なのか解りませんが、ビルド時にプロジェクトのオプション内でリンク付けが出来るらしいので、少し調べて見ようと思います。

恐らく、私自身、相当解っていない状態で動作確認を行っている様な感じがします。
また、他のことで質問するかも知れませんが、よろしくお願いします。

Edited by: Nakano Shintaro on Jun 27, 2014 1:30 PM
Hideaki Tominaga


Posts: 25
Registered: 4/14/97
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 28, 2014 12:01 AM   in response to: Nakano Shintaro in response to: Nakano Shintaro
Error loading MIDAS.DLL.

#include <dbxdsnint.h>

をやってみたらどうなりますか?

--
Hideaki Tominaga (DEKO)
Nakano Shintaro

Posts: 22
Registered: 8/25/04
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jun 29, 2014 9:24 PM   in response to: Hideaki Tominaga in response to: Hideaki Tominaga
Hideaki Tominaga 様、ありがとうございます。

Error loading MIDAS.DLL.

#include <dbxdsnint.h>

をやってみたらどうなりますか?

下記のエラーメッセージが表示されます。
:’dbxdsnint.h’ ファイルが見つかりません

プロジェクトの配置の機能ファイルも試して見ましたが、進展がありません。

英語圏サイトも見ましたが、エラーメッセージ「Error loading MIDAS.DLL.」で困っている
ユーザーは沢山いる事は解りましたが、具体的な対策方法の記載がなくて困っています。

結局、MIDAS.DLLリンク付け方法が解りません。

MIDAS.DLLをライブラリ化してリンク付けするのか、MIDAS.DLLをどこのフォルダーに移動
すれば起動するのか解りません。
実行型ファイルがあるフォルダーにも移動して見ましたがエラーメッセージがでます。
System32、SysWOW64のそれぞれにMIDAS.DLLファイルをコピーしてみましたが
進展はありませんでした。

まだデータベースに関して理解していない部分が多いのですが、ご助言頂けると助かります。
お忙しいところ、よろしくお願いします。
Nakano Shintaro

Posts: 22
Registered: 8/25/04
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 1, 2014 5:17 AM   in response to: Nakano Shintaro in response to: Nakano Shintaro
こんばんは、


Error loading MIDAS.DLL.

#include <dbxdsnint.h>

をやってみたらどうなりますか?

下記のエラーメッセージが表示されます。
:’dbxdsnint.h’ ファイルが見つかりません

自分なりに少し調べてみました。
#include <dbxdsnint.h>の方法は、C++Builder6までの仕様らしく、C++Builder XEシリーズでは
違う表記の模様です。

下記に記載がありました。
http://docwiki.embarcadero.com/RADStudio/XE4/ja/%E3%82%A4%E3%83%B3%E3%82%AF%E3%83%AB%E3%83%BC%E3%83%89_%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9
全て読んでいないのですが、コンソール アプリケーション、データベース アプリケーション、Web/SOAP アプリケーション
では#includeの考え方が少し違っている模様です。

まだデータベースに関して理解していない部分が多いのですが、ご助言頂けると助かります。
お忙しいところ、よろしくお願いします。
Hikaru FUKUSHI

Posts: 65
Registered: 11/11/02
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 1, 2014 7:24 AM   in response to: Nakano Shintaro in response to: Nakano Shintaro
中野さん、こんばんは。福士と申します。横から失礼します。

Error loading MIDAS.DLL.

これについては

Nano App Tech : Error loading MIDAS.dll
http://nanosofttechno.blogspot.in/2013/08/error-loading-midasdll.html

にあるように、実行環境でもMIDAS.DLLをregsvr32(かインストーラ)で登録する必要がある、
ということではないでしょうか?

# 開発環境ではDelphi/C++Builderのインストーラによって登録済なのでは。

#include <dbxdsnint.h>の方法は、C++Builder6までの仕様らしく、C++Builder XEシリーズでは
違う表記の模様です。

データベース アプリケーションの配置 - RAD Studio
http://docwiki.embarcadero.com/RADStudio/XE5/ja/%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E9%85%8D%E7%BD%AE

には

midas.hpp(C++ の場合)(スタンドアロンの実行可能ファイルを配布するときは、静的リンク)をインクルードする必要があります。

とありますので、
#include <midas.hpp>

ではないかと。

当てずっぽうなので外していたらすいません。ヒント程度にお考えください。

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
Nakano Shintaro

Posts: 22
Registered: 8/25/04
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 1, 2014 11:54 PM   in response to: Hikaru FUKUSHI in response to: Hikaru FUKUSHI
こんにちは
福士さんご返答ありがとうございます。


Nano App Tech : Error loading MIDAS.dll
http://nanosofttechno.blogspot.in/2013/08/error-loading-midasdll.html

にあるように、実行環境でもMIDAS.DLLをregsvr32(かインストーラ)で登録する必要がある、
ということではないでしょうか?

こちらの方法も既に試してみましたが、状況は変わりませんでした。

#include <midas.hpp>

ではないかと。

この方法も既に試していますが、進展は見られませんでした。

今、エンバカデロ社の方に今回の「Error loading MIDAS.DLL.」エラーメッセージに関して
電子メールで問い合わせている所です。今週末位までに返答があると願っています。

個人的には・・・
1.このまま「Error loading MIDAS.DLL.」エラーメッセージを解決してみる。
2.ClientDataSetコンポーネントを使用すると今回のエラーがでるので、違うコンポーネント群
  に変更する。
  ※今現在はDBXコンポーネント群を使用していますが、IBXコンポーネント群に変更すると言った感じです。
3.C++Builder XE5での開発を中止し、Delphiに全面的に切り替える手段。

結論から言いますと、殆どお手上げの状態に近いです。
出来ることならば、1の項目で問題解決し、今後のデータベース開発するユーザーの為にも解決手段等を
このディスカッションフォームに残しておきたいと考えています。

多分、開発環境下でのMIDAS.DLL参照位置と動作環境下でのMIDAS.DLL参照位置が違う為にエラー表示が
出ていると思われるのですが、参照位置が知識不足でまだ理解出来ていません。

参考になる情報、書籍、インターネット情報などありましたらご助言頂けると助かります。
お忙しいところ、よろしくお願いします。
Tomohiro Takaha...

Posts: 19
Registered: 12/15/06
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 3, 2014 6:17 PM   in response to: Nakano Shintaro in response to: Nakano Shintaro
こんにちは。
私の同様の環境(C++Builder XE5 Update2)で作成したシンプルなWin64アプリ(動的RTL,実行時パッケージともにOFF)で、TClientDataSetを使用するProject1.exeを作成し、クリーンなWindows 7 64bitのPC上に Project1.exe と midas.dll をコピーして(同一フォルダ)、Project1.exeを起動しましたが特に問題なく動作します。regsvr32 は不要です。

もし可能であれば、最小限のシンプルなプロジェクト(.exeや再配布に使用しているモジュールも含む)を、アップロード専用のフォーラムに添付されはいかかでしょうか?
[Embarcadero Discussion Forums >> Attachments]
https://forums.embarcadero.com/forum.jspa?forumID=2

Nakano Shintaro wrote:
にあるように、実行環境でもMIDAS.DLLをregsvr32(かインストーラ)で登録する必要がある、
snip
1.このまま「Error loading MIDAS.DLL.」エラーメッセージを解決してみる。
Nakano Shintaro

Posts: 22
Registered: 8/25/04
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 4, 2014 12:37 AM   in response to: Tomohiro Takaha... in response to: Tomohiro Takaha...
こんにちは、
Tomohiro Takahashi様、ありがとうございます。
動作確認まで行って貰って、本当にありがとうございます。

私の同様の環境(C++Builder XE5 Update2)で作成したシンプルなWin64アプリ(動的RTL,実行時パッケージともにOFF)で、TClientDataSetを使用するProject1.exeを作成し、クリーンなWindows 7 64bitのPC上に Project1.exe と midas.dll をコピーして(同一フォルダ)、Project1.exeを起動しましたが特に問題なく動作します。regsvr32 は不要です。

もし可能であれば、最小限のシンプルなプロジェクト(.exeや再配布に使用しているモジュールも含む)を、アップロード専用のフォーラムに添付されはいかかでしょうか?
[Embarcadero Discussion Forums >> Attachments]
https://forums.embarcadero.com/forum.jspa?forumID=2

ご指摘の様に、簡単な動作確認用のプログラムを作ってみました。
https://forums.embarcadero.com/forum.jspa?forumID=2
こちらの方に添付ファイルを載せておきました。

まだ解決に至っていません。

私自身、知識不足の面があり、「Error loading MIDAS.DLL.」Midasファイルを読み込めないエラーメッセージの回避方法
及び、解決策が見出せずにいます。
個人的には、アプリケーション側での「Midas.dllをインクルードする方法」、もしくは、「Midas.dllをプログラムに記載及び記述する内
容」等が解れば解決するのはと思っています。

#include <dbxdsnint.h>の方法は、C++Builder6までの仕様らしく、C++Builder XEシリーズでは違う表記の模様と言うことなので、
#include <midas.hpp>をプログラム.cppの先頭部分に記載してましたが、進展していません。

まだデータベースに関して理解していない部分が多いのですが、ご助言頂けると助かります。
お忙しいところ、よろしくお願いします。
Tomohiro Takaha...

Posts: 19
Registered: 12/15/06
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 4, 2014 7:07 PM   in response to: Nakano Shintaro in response to: Nakano Shintaro
こんにちは。
まず、Nakanoさんの添付されたプロジェクトでは、データベースの接続先がlocalhostになっているので、
.exeの再配布先からRemoteのIntreBaseに接続する形式に変更しました。
フォームデザイン上でグリッドにデータが表示される状態で、ReleaseモードのWin64でビルドして、
作成したProject1.exeと、64bit版の
dbxint.dll
midas.dll
ibclient64.dll
の計4つのファイルを、まっさらなWindows 7 64bitの同一フォルダ上にコピーして、実行しましたが、
特に問題なく起動しますし、midas.dllのロードエラーも表示されません。

Nakanoさんが.exeを再配布しようとしているPC環境には、別のフォルダに別のmidas.dllが存在しているのではないでしょうか?
まっさらなWindows OS環境に、上記の.exeと3つのdllだけをコピーして試されてはいかがでしょうか?

Nakano Shintaro wrote:
ご指摘の様に、簡単な動作確認用のプログラムを作ってみました。
https://forums.embarcadero.com/forum.jspa?forumID=2
こちらの方に添付ファイルを載せておきました。
Tomohiro Takaha...

Posts: 19
Registered: 12/15/06
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 4, 2014 9:51 PM   in response to: Nakano Shintaro in response to: Nakano Shintaro
Nakanoさん

.exe以外にNakanoさんが再配布したであろう dbxint.dllとibclient64.dllとmidas.dllの3つのファイルを
.zipで固めて再度そのフォーラムにアップロードしてはどうでしょうか?
ひょっとしたら、midas.dllが壊れているかもしれませんし。

ご指摘の様に、簡単な動作確認用のプログラムを作ってみました。
https://forums.embarcadero.com/forum.jspa?forumID=2
こちらの方に添付ファイルを載せておきました。
Nakano Shintaro

Posts: 22
Registered: 8/25/04
Re: 開発環境のパソコン以外で実行型ファイルが起動しない  
Click to report abuse...   Click to reply to this thread Reply
  Posted: Jul 7, 2014 6:08 PM   in response to: Tomohiro Takaha... in response to: Tomohiro Takaha...
こんにちは、
Tomohiro Takahashi様、動作確認までしてもらい有難うございました。


.exe以外にNakanoさんが再配布したであろう dbxint.dllとibclient64.dllとmidas.dllの3つのファイルを
.zipで固めて再度そのフォーラムにアップロードしてはどうでしょうか?
ひょっとしたら、midas.dllが壊れているかもしれませんし。

今現在、開発用のパソコンと動作確認用のパソコン、双方共に動かない状態です。
パソコンの修理が終わり次第、動作確認を行います。

動作確認までしてもらい、本当に有難うございました。

また何か解らない事で書き込みをするかも知れませんが、宜しくお願いします。
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02