以前C++ Builder5で作成していたプログラム(プロジェクト)を、C++ Builder XEで使うことになり、XEでコンパイルを行った時に出るエラーは全部直し、実行しようと思ったのですが、「コンパイル成功」と出た後に実行画面が出ません。

「実行」を押したときに、コンパイル成功で実行画面が出ない理由には、どのような原因が考えられるのでしょうか?

思い当たる原因があったら、ぜひ教えてください。

A 回答 (1件)

コンパイルが成功していても、プロジェクトの生成まで成功したとは限りません。



古いバージョンで作ったプロジェクトファイルを新バージョンに移行する際に、ライブラリの指定を書き直してないとかで、ライブラリファイルのリンクに失敗している可能性があります。

一度、プロジェクトグループ内の全てのプロジェクトの再構築をやってみては?

あと、実行時に何らかのコマンドライン引数が必要としているプログラムで「引数無しの場合は、即、終了」と言う処理を入れていると、実行画面が出る前に、統合開発環境の画面に戻ってしまいます。

コマンドライン引数の要・不要も確認して下さい。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

プロジェクトの再構築を行った結果、ヘッダーファイルの内容に対するエラーが発生し、そのエラーは直したのですが、相変わらず実行できないままです。

コマンドライン引数は必要としていないので、あと考えられる理由はライブラリのリンクの失敗ですかね・・・。

他に、思い当たる理由があれば、ぜひ教えてください。

お礼日時:2011/04/25 15:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q復元ポイントの作成とイメージファイル等のバックアップとの違いについて

今晩は、宜しくお願いします。

復元ポイントの作成とイメージファイル等のバックアップとの違いについて教えて下さい。

Windowsで復元ポイントからシステムを復元させる方法があり、
また、イメージファイル等にバックアップをとり、復元させる方法もありますが
この両者はどのように違うのでしょうか。

復元ポイントの作成とは、その時点のシステムの設定等だけを保存しているという
ことでしょうか。

また、イメージファイル等のバックアップを作成するということは
システム設定と作成したファイル等もイメージファイルとして一括してバックアップ
されるのでしょうか。

イメージファイルの復元時に、作成したファイル等もイメージファイルから
復元されるのなら、同じ名前のファイルがあった場合には、
イメージファイル作成時の古い情報のファイルになってしまうのでしょうか。

以上、宜しくお願いします。

Aベストアンサー

【システムの復元】
Windowsが使用するシステムファイルのバックアップと復元。
ユーザーファイルには影響しない。
HDDの中に作成されるので、Windowsが起動しない環境では使用出来ない。

【システム修復ディスクの作成】
Windowsの起動時にF8を押下して起動するセーフモードから「コンピューターの修復」「システム回復オプション」を、外部記憶装置(CD、USBメモリなど)から起動出来るようにする。
Windows自体が起動しなくなった場合に、外部記憶装置から「システム回復オプション」が起動出来るようになる。修復されるのは、選択した項目により異なる。
WindowsREを利用。
https://msdn.microsoft.com/ja-jp/library/hh825173.aspx

【バックアップと復元】
システムのバックアップを作成し、ハードディスクなどが壊れた場合に備えパソコン内部のデータを全てバックアップ・復元出来る。
Windowsのインストールディスクや、システム修復ディスクから復元が可能。
システムもユーザーデータもバックアップを取った時点の状態に戻る。

【システムの復元】
Windowsが使用するシステムファイルのバックアップと復元。
ユーザーファイルには影響しない。
HDDの中に作成されるので、Windowsが起動しない環境では使用出来ない。

【システム修復ディスクの作成】
Windowsの起動時にF8を押下して起動するセーフモードから「コンピューターの修復」「システム回復オプション」を、外部記憶装置(CD、USBメモリなど)から起動出来るようにする。
Windows自体が起動しなくなった場合に、外部記憶装置から「システム回復オプション」が起動出来るようになる。...続きを読む

QBorland C++ Builderで簡単なC言語プログラムの作成・実行

Borland C++ Builderで簡単なCのプログラムを作り実行させるにはどうしたらよいですか?
DOS窓上でコンパイルするのではなく、Borland C++ Builderのメニューから行いたいのです。
一応、「ファイル→新規作成→その他→Cファイル」でCのファイルは作成できるのですが、このファイルを「プロジェクト→ユニットのコンパイル」でコンパイルすることができません。
Formオブジェクト(?)を作成しておくとコンパイルできます。
Formは特に必要ないので、FormなしでCのファイルだけをコンパイルしたいのです。

DOS窓でのコンパイル・実行はできます。

事情があってBorland C++ Builderを使わなくてはなりませんので、他のIDEはこの際全く解決になりません。

よろしくお願いします。

Aベストアンサー

プロジェクトを[コンソールアプリケーション]で作成して置く必要があります。

TurboC++での例。
画面は多少違いますがC++Builderでも同じです。
http://www.asahi-net.or.jp/~qb3k-kwsk/rpg/program/tool/tcpp/tcpp.html

Q救出ファイル復元 2の機能について

「救出ファイル復元 2」で画像ファイルJPEGの他にRAWファイル、拡張子(CR2)を復元出来るでしょうか。

キャノンの一眼デジカメを使っているのですが、他の復元ソフトでは、復元出来ませんでした。

Aベストアンサー

Vectorあたりで『ディスク・ファイル復旧』の項目で探せばみつかりそうですが。
要は,"復元ソフトで復元できるファイルがソフトに登録されている拡張子だけしかできない"ことですので,拡張子を選択できる復元ソフトを捜せばいいと思われます。

参考URL:http://www.vector.co.jp/vpack/filearea/win/util/disk/care/

QC++Builder → Visual C++ 移植について

C++BuilderXを使って開発したアプリケーションがあるのですが
64bit版Windowsへの対応の要件が出てきました。
ところが、C++Builderがいまだに64bit版Windows未対応(2009年中頃対応予定との事)
なので、Visual C++での作成を検討しなくてはならなくなりました。

と言った状況なのですが、
C++Builder → Visual C++ に移植する際に、どういった問題点が出てきますでしょうか。
VCLを使っているところなんかはもちろん見なければならないでしょうが
他に注意するべき点などはありますでしょうか。

詳しい方がいらっしゃいましたらお教え願います。

Aベストアンサー

文法面ではTemplateまわりにコンパイラごとの違いが出やすいですね
VCもコンパイラのバージョンによってかなり違いがあるので
どのバージョンによるかで変わってきます
あまり複雑なTemplateの使い方は移植性を考えて
避けておくのが無難です。

後はC++Builder特有の拡張ではプロパティの宣言がありますね

あと文字列操作とファイルディレクトリ操作の関数も
C++Builder特有のものがあるので、使ってるかどうか注意が必要です

Q削除した画像ファイルの取り出しまたは復元方法

ごみ箱に入れてから削除したファイルの復元方法を教えてください。

以前にも同様の質問をしたのですが、その際に教えていただいた方法で確かにいくつかのファイルは復元することができました。

しかし、一番復元したい画像ファイル(jpeg形式)が復元できません、同時期に同じく削除したファイルは無事に取り出せたのですが肝心のファイルは取り出せません。指定するファイル名、フォルダ名などの間違いはないのですが何が原因で復元できないのか理解できません。

良きアドバイスをいただければ助かります。
宜しくお願いいたします。

Aベストアンサー

こういったファイル復元ソフトを利用してファイルを復活させます。

●FileRecovery(フリーウェア)

消去・欠損したファイルを復元するソフト。
http://www.pcinspector.de/download.htm

●復元(フリーウェア)
http://www.vector.co.jp/soft/win95/util/se192983.html

■FINALDATA(ファイナルデータ)フォトリカバリー3.0(有料)
http://www.finaldata.ne.jp/f_8_3.html

当然ながら復元できる確立は有料ソフトのほうが高いです。

これらを使っても復元できない場合はファイルが上書きされて完全に消えている可能性が高いです。

QC++コンソールプログラムをBuilder6に書き直す

卒業研究に取り組んでおり、
コンソールプログラムで得た出力結果(.exe)を、BuilderのMemoで表示させたいのですが、どの部分を書き直したらいいのかわかりません。私が思うに

1.Wimmain
2.出力部分

を書き直せばいいのかなと思うのですが、参考になるサイトなど知っていたら、またアドバイス等ございましたら教えて下さるとありがたいです。
今、namespaceの次にmainを書いているのですが、

 E2268 未定義の関数を呼び出した

というエラーが表示され、main文は読み込めていないようです。どなたかわかる方いましたらアドバイス宜しくお願いします。

追伸 .exeの内容をShellExcuteで呼び出すということも可能なのでしょうか。宜しくお願いいたします。

Aベストアンサー

基本的なアイデア、namespaceを利用し、coutへの出力をstrstreamのcoutに振り替える、そうした文字列をメモコンポーネントにセットする。
手順1:プログラムファイルをコピーし、拡張子をcppからhに変えてStateをプログラムからincludeできるようにする
手順2:coutをostrstream(文字列への出力ストリーム)に置き換える為にnamespaceを定義し、ostrstream coutを定義する
手順3:main関数部分を削除する
以上の処理をしたState.h
#include <deque>
#include <iostream>
#include <strstream>

using namespace std;
namespace my{
ostrstream cout;

struct State{
bool wolf;
bool goat;
bool cabbage;
bool man;
deque<State> path;

State()
: wolf( false ), goat( false ), cabbage( false ), man( false ), path(){ }

bool succeeded() const{
return( this -> wolf && this -> goat && this -> cabbage && this -> man );
}
bool failed() const {
return( (wolf == goat && man != wolf)||(goat == cabbage && man != goat));
}

State move_wolf() const {
State s = *this;
s.path.push_back( *this );
if ( s.wolf == s.man ){
s.wolf = !s.wolf;
s.man = !s.man;
}
return( s );
}
State move_goat() const {
State s = *this;
s.path.push_back( *this );
if ( s.goat == s.man ){
s.goat = !s.goat;
s.man = !s.man;
}
return( s );
}
State move_cabbage() const {
State s = *this;
s.path.push_back( *this );
if ( s.cabbage == s.man ) {
s.cabbage = !s.cabbage;
s.man = !s.man;
}
return( s );
}
State move_man() const {
State s = *this;
s.path.push_back( *this );
s.man = !s.man;
return( s );
}

bool operator == ( const State& s ) const{
return( this->wolf == s.wolf && this->goat == s.goat && this->cabbage == s.cabbage && this->man == s.man );
}
bool operator != ( const State& s ) const{
return(!(*this == s));
}
};

ostream& operator << ( ostream & ostr , const State & s ){
ostr << (s.wolf ? "" : "w") << (s.goat ? "" : "g")
<< (s.cabbage ? "" : "c") << (s.man ? "" : "m")
<< "-"
<< (s.wolf ? "w" : "") << (s.goat ? "g" : "")
<< (s.cabbage ? "c" : "") << (s.man ? "m" : "");
return( ostr );
}

void print_progress( const State& s, const deque<State>& open_list, const deque<State>& closed_list){
cout << "Testing " << s << endl;
cout << "Open List =";
for ( size_t i = 0 ; i < open_list.size() ; i ++ ){
cout << " " << open_list[i];
}
cout << endl;
cout << "Closed List =";
for ( size_t i = 0 ; i < closed_list.size() ; i ++ ){
cout << " " << closed_list[i];
}
cout << endl;
}

void print_result( const State & s ){
cout << "Result = ";
for ( size_t i = 0 ; i < s.path.size() ; i ++ ){
cout << s.path[i] << " ";
}
cout << s << endl;
}
} //namespace my;
手順4:C++ビルダーを立ち上げて、メモコンポーネントとボタンコンポーネントを配置する
手順5:メモは初期文字列を消して、スクロールできるようにしておく、ボタンは名前を変える。
手順6:プロジェクト及びユニットを名前を付けて保存する
手順7:作成しておいたState.hを、作成したプロジェクトフォルダにコピーする
手順8:フォーム上のボタンをクリックしてボタンクリックイベントを作成する
手順9:元のプログラムのmain関数の中身をココにコピー&ペーストする
手順10:
return 文は消す。
coutの部分はmy::coutに変更しMemo1->Textに代入する
Memo1では、\nを\r\nに変更しないといけないのでAnsiReplaceStrする
State.hとvcl\StrUtils.hppをincludeするように書く
namespace my を使えるようにしておく
以上を処理したUnit1.cpp(このまま使わないでIDE上で書くこと)
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
#include <vcl\StrUtils.hpp>
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
#include "State.h"
using namespace my;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{

State start_state;
deque<State> open_list;
deque<State> closed_list;

open_list.push_back( start_state );
while( ! open_list.empty() ){
State s = open_list.front();
open_list.erase( open_list.begin() );
print_progress( s , open_list , closed_list );
my::cout << endl;

if ( s.succeeded() ){
print_result( s );
break;
}

if ( s.failed() ){
continue;
}

if ( find( closed_list.begin() , closed_list.end() , s )== closed_list.end() ){
open_list.push_back( s.move_wolf() );
open_list.push_back( s.move_goat() );
open_list.push_back( s.move_cabbage() );
open_list.push_back( s.move_man() );

closed_list.push_back( s );
}
}
Memo1->Text=my::cout.str();
Memo1->Text=AnsiReplaceStr(Memo1->Text, "\n", "\r\n");
}
手順11:いったん全て保存してビルド&実行

基本的なアイデア、namespaceを利用し、coutへの出力をstrstreamのcoutに振り替える、そうした文字列をメモコンポーネントにセットする。
手順1:プログラムファイルをコピーし、拡張子をcppからhに変えてStateをプログラムからincludeできるようにする
手順2:coutをostrstream(文字列への出力ストリーム)に置き換える為にnamespaceを定義し、ostrstream coutを定義する
手順3:main関数部分を削除する
以上の処理をしたState.h
#include <deque>
#include <iostream>
#include <strstream>

using ...続きを読む

Q「ウイルス感染ファイル」削除後のシステム復元でどうなる?

ウイルスバスターで幾つかのウイルス感染ファイル発見し全て削除しましたが、感染したファイルはシステムファイルでしたので少し心配でしたが削除しました。
そこで教えて頂きたいのですが、感染した日付以前でシステムの復元をする事によって削除されたシステムファイルは復元できるのでしょうか?一度削除されたシステムファイルはシステムの復元をしても二度と復元しないのでしょうか?

Aベストアンサー

以下WindowsXPという前提で・・・

>システムファイルでしたので少し心配でしたが削除しました。
通常、このままではシステムエラーが発生します。
しかし、Windowsには自動復旧機能があり、削除されたファイルをハードディスク上にあるCabファイルから呼び出して復旧させるようになっています。
従って、殆どの場合、削除されたシステムファイルを手動でインストールする必要はありません。

☆SFCの実行
もしシステムエラーが出る場合SFC(System File Checker)の実行をお勧めします。

1.CDドライブにOSのインストールディスクを入れておく。
2.「スタート」「コマンドプロンプト」または「ファイル名を指定して実行」で
「sfc /scannow」と入力して「OK」

「Windows XP professional のディスクを入れてください」という表示が出ることがありますがHome Editionであれば「無視」を選んでスキップしてください

>感染した日付以前でシステムの復元をする事によって削除されたシステムファイルは復元できるのでしょうか?
出来ないことはないでしょうが、あまりお勧めできません。
現在の状態が正常でない。
過去の状態の方が快適に操作できる。
という場合、それがいいかもしれません。
しかし、Windowsの設定というのは非常に広範囲にわたっており、現在と過去を比較して、どちらが適正かを判断するのは容易ではありません。
また、過去の復元ポイントの中には不正な設定が含まれている場合があり、間違って、そのポイントを選択することもあります。
ウィルス対策ソフトのサイトでは一旦復元設定を無効にして、過去の復元ポイントを全て消去することを推奨しています。

>一度削除されたシステムファイルはシステムの復元をしても二度と復元しないのでしょうか?
間違った操作をすると汚染されたファイルが復元されてしまいます。
一旦復元設定を無効にして、過去の復元ポイントを全て消去することで汚染されたファイルは二度と復元しません。

以下WindowsXPという前提で・・・

>システムファイルでしたので少し心配でしたが削除しました。
通常、このままではシステムエラーが発生します。
しかし、Windowsには自動復旧機能があり、削除されたファイルをハードディスク上にあるCabファイルから呼び出して復旧させるようになっています。
従って、殆どの場合、削除されたシステムファイルを手動でインストールする必要はありません。

☆SFCの実行
もしシステムエラーが出る場合SFC(System File Checker)の実行をお勧めします。

1.CDドライ...続きを読む

QC++ Builder Xを使って実行結果が表示させるには?

C++ Builder Xのコンパイラを使ってC言語の勉強をしているのですが実行結果が表示されません。

例えば、
printf("Hello");
といったものなら表示されるのですが

printf("点数を入力してください。\n");
scanf("%d", &i);
とかいったものを使うとの点数の入力ができませんでした。

保存先にDebug_Buildというフォルダができていてそこにコマンドプロンプトがあったのでそこをクリックしてみると、
「点数を入力してください」と表示されていたので
点数を入力してからエンターキーを押してみたのですがその画面が消えてしまって何もおきませんでした。


どなたか解決策をご存知でしょうか?よろしくおねがいします。

Aベストアンサー

「保存先にDebug_Buildというフォルダができていてそこにコマンドプロンプトがあった」という状況が今ひとつ理解できませんが…。

そのプログラムは scanf で終わりですか? もしそうなら、プログラムの実行が終了したので、画面(コマンドプロンプトのウインドウ)が消えたのではないでしょうか。

scanf の次(プログラムの最後)に、getchar(); を入れると、そこで処理が止まるので、ウインドウが閉じなくなると思いますよ。

Q復元ソフトのふと感じた疑問 -ファイル名を削除したい-

先日、復元ソフトを使用していたときに感じたことなのですが
(使用ソフトは「復元」です。)
ファイルを復元する際の手順で削除したファイルが検索できますよね。
このファイル検索の時に、HITしないようにファイル名を完全に削除したい場合はどのようにすればいいのでしょうか??

例えば、「●●との秘密旅行001.jpg」のファイルを削除したとします。
その後、復元ソフトで検索をかけるとファイルを復元しなくてもファイル名を見ただけで怪しいファイルとわかってしまいますよね。
復元ソフトの検索で、表示されなくする方法か、別名に変える方法があるのなら教えてください。

Aベストアンサー

95159さんが求めていらっしゃるのは以下の方法ではないでしょうか。

フリーの復元ソフトに「DataRecovery」というものがあります。このフリーソフトには「削除したファイル」の名前を時間をかけず簡単に消去できる機能が付いています。

『DataRecovery』
http://www.vector.co.jp/soft/win95/util/se382922.html

■使い方
起動させる→該当ドライブをクリック→[スキャン]ボタンをクリック→削除したファイルの表示完了→「目的のファイルが見つかりましたか?」と出てきたら[キャンセル]をクリック→名前を消去したいファイルをクリックするか、名前を消去したい複数ファイルを左クリックしながら選択する→[消去]ボタンをクリック→[OK]をクリック

これで、名前を消せます。しかしながら完璧ではなくて、一部消せないこともあります。
(「DataRecovery」を再起動してもう一度ドライブをスキャンすると消せなかったファイルが表示されます)

参考URL:http://www.vector.co.jp/soft/win95/util/se382922.html

95159さんが求めていらっしゃるのは以下の方法ではないでしょうか。

フリーの復元ソフトに「DataRecovery」というものがあります。このフリーソフトには「削除したファイル」の名前を時間をかけず簡単に消去できる機能が付いています。

『DataRecovery』
http://www.vector.co.jp/soft/win95/util/se382922.html

■使い方
起動させる→該当ドライブをクリック→[スキャン]ボタンをクリック→削除したファイルの表示完了→「目的のファイルが見つかりましたか?」と出てきたら[キャンセル]をクリック→名...続きを読む

Q「Borland C++ Builder 5」で作成したプログラムについて

「Borland C++ Builder 5」で作成したプログラム(コンポーネント使用)を、Builderを起動せずフリーソフトのようにWindows上で実行させるにはどうすればよいのでしょうか。

Aベストアンサー

単独で実行できるファイルの作成方法の紹介をします。

1.メニューの「プロジェクト(P)」→「オプション」をクリックすると、「プロジェクト オプション」ダイアログが開きます。
2. 「パッケージ」タブをクリックして、下の方の「実行時パッケージを使って構築(B)」のチェックを外す。
3. 「リンカ」タブ(詳細ではない)をクリックして、「共有RTL DLLを使う(R)」のチェックを外す。
4.「OK」をクリックする。

これで準備OKです。つぎは再構築です。

5.メニューの「プロジェクト」→「すべてのプロジェクトの再構築(U)」です。
出来上がったexeファイルは少し大きめになりますが、他のパソコンでも実行でいます。

また、インストーラでインストールすることも出来ます、その作成方法は別です。
70過ぎの爺で御座います。参考なればよいが????


人気Q&Aランキング