hidebun の回答履歴
- Vista(日本語版)に BorlandC++6Builder(英語版
Vista(日本語版)に BorlandC++6Builder(英語版)をインストールし、かんたんなソースファイル(Unit1.cpp)を入力して Run(実行)したら、妙なエラーになりました。 1.Unit1.obj までは生成できるが、そのあとの Project1.obj 以降が生成できない。 2.ソースファイルをデフォルトのフォルダ(C:\Program Files\Borland\CBuilder6\Projects)に入れると、BorlandC++6Builder の Open(ファイルを開く)からはこれらのファイル(Unit1.cpp, Unit1.obj)が見えるのに MyComputer からは見えない。 3.ソースファイルを別のフォルダ(ユーザのドキュメントフォルダ)にセーブすると、もちろん MyComputer からも見えるようになるが、これをコンパイルするとオブジェクトファイル(Unit1.obj)がどこに生成されるのかわからなくなる。 以上が解決できなくて困っています。私現在、海外の学校でプログラミングを教えているのですが、BorlandC++6Builder を使うのは今回が初めてです。学校のXP(ロシア語版)では問題なく動作しているので(私自身がインストールしたBorlandC++6Builder プログラム+ロシア語版パッチで実行すると、Project1.exe ファイルまですべて同じフォルダ内に生成される)、なぜ私の Vista でできないのか理由がよくわかりません。パッチのせいでしょうか。C++ ぐらい教えるのはわけないと思って安請け合いをしてしまいました(スミマセン)。初歩的な質問かもしれませんが、緊急性を要するのでよろしくお願いいたします。
- Vista(日本語版)に BorlandC++6Builder(英語版
Vista(日本語版)に BorlandC++6Builder(英語版)をインストールし、かんたんなソースファイル(Unit1.cpp)を入力して Run(実行)したら、妙なエラーになりました。 1.Unit1.obj までは生成できるが、そのあとの Project1.obj 以降が生成できない。 2.ソースファイルをデフォルトのフォルダ(C:\Program Files\Borland\CBuilder6\Projects)に入れると、BorlandC++6Builder の Open(ファイルを開く)からはこれらのファイル(Unit1.cpp, Unit1.obj)が見えるのに MyComputer からは見えない。 3.ソースファイルを別のフォルダ(ユーザのドキュメントフォルダ)にセーブすると、もちろん MyComputer からも見えるようになるが、これをコンパイルするとオブジェクトファイル(Unit1.obj)がどこに生成されるのかわからなくなる。 以上が解決できなくて困っています。私現在、海外の学校でプログラミングを教えているのですが、BorlandC++6Builder を使うのは今回が初めてです。学校のXP(ロシア語版)では問題なく動作しているので(私自身がインストールしたBorlandC++6Builder プログラム+ロシア語版パッチで実行すると、Project1.exe ファイルまですべて同じフォルダ内に生成される)、なぜ私の Vista でできないのか理由がよくわかりません。パッチのせいでしょうか。C++ ぐらい教えるのはわけないと思って安請け合いをしてしまいました(スミマセン)。初歩的な質問かもしれませんが、緊急性を要するのでよろしくお願いいたします。
- Vista(日本語版)に BorlandC++6Builder(英語版
Vista(日本語版)に BorlandC++6Builder(英語版)をインストールし、かんたんなソースファイル(Unit1.cpp)を入力して Run(実行)したら、妙なエラーになりました。 1.Unit1.obj までは生成できるが、そのあとの Project1.obj 以降が生成できない。 2.ソースファイルをデフォルトのフォルダ(C:\Program Files\Borland\CBuilder6\Projects)に入れると、BorlandC++6Builder の Open(ファイルを開く)からはこれらのファイル(Unit1.cpp, Unit1.obj)が見えるのに MyComputer からは見えない。 3.ソースファイルを別のフォルダ(ユーザのドキュメントフォルダ)にセーブすると、もちろん MyComputer からも見えるようになるが、これをコンパイルするとオブジェクトファイル(Unit1.obj)がどこに生成されるのかわからなくなる。 以上が解決できなくて困っています。私現在、海外の学校でプログラミングを教えているのですが、BorlandC++6Builder を使うのは今回が初めてです。学校のXP(ロシア語版)では問題なく動作しているので(私自身がインストールしたBorlandC++6Builder プログラム+ロシア語版パッチで実行すると、Project1.exe ファイルまですべて同じフォルダ内に生成される)、なぜ私の Vista でできないのか理由がよくわかりません。パッチのせいでしょうか。C++ ぐらい教えるのはわけないと思って安請け合いをしてしまいました(スミマセン)。初歩的な質問かもしれませんが、緊急性を要するのでよろしくお願いいたします。
- デバッグ前のコードに戻すには?
Visual Studio 2008 Express Editionsを使用しております。 先日作りかけのアプリのコードをいじっていて、複数の間違った記述をしたままデバッグをし、エラーの出るアプリになってしまいました。 どの記述が間違っているのか判別できないので、いじる前の段階のコードに戻そうと考えたのですが、 デバッグした状態が最新の状態となっておりますので、 これ以前の状態に戻す方法があれば、あるいはこのようなトラブルを回避する方法を教えて下さい。 よろしくお願いします。
- ベストアンサー
- C・C++・C#
- master817199
- 回答数4
- cvLoadImageを使用するとプロセスが終了できません。
cvLoadImageを使用するとプロセスが終了できません。 OpenCV1.1を使用して開発を行っているのですが、OpenCVの関数であるcvLoadImageとMFCのクラスであるCFileDialogを一緒に使用した場合、アプリケーションの終了時にプロセスが残ってしまいます。 デバッグ実行の場合、完全に終了まで至らない。 リリースビルドの実行ではタスクマネージャで確認する限りプロセスが残っています。 この現象は以下のコードを実行した場合発生しているようです。 逆に言えばこのコードを実行しなければ正常に終了します。 ■現象の発生するコード IplImage* pImage ; CString strFilePath = "c:\\a.jpg"; CFileDialog dlg( TRUE, NULL, NULL, OFN_FILEMUSTEXIST | OFN_HIDEREADONLY, _T("すべてのファイル(*.*)|*.*||") ) ; if( IDOK == dlg.DoModal() ) { strFilePath = dlg.GetPathName() ; TRACE( "%s\n", strFilePath ) ; pImage = cvLoadImage( strFilePath , 1 ) ; cvReleaseImage( &pImage ) ; } http://questionbox.jp.msn.com/qa5084716.html ここを読むと似たような現象で、回避方法としてOpenCV1.0にすると書かれています。 関数やコンパイラの環境、症状がやや異なるので、同じかどうかは分かりませんが、なんとかOpenCV1.1でCFileDialogを使用したいのです。 よい回避方法がありましたらお教えください。 よろしくお願いします。 ■開発環境 ・VC++6.0 ・OpenCV1.1pre ・WindowsXP OpenCV2.0への変更とVC++6.0以外のコンパイラへの変更は考えていません。
- ベストアンサー
- C・C++・C#
- shouko0918
- 回答数1
- FMFファイルの構造を知りたいのですが
FMFファイルの構造を知りたいのですが (intや型char型などの)どうやって調べればよいのでしょうか?
- システム開発で困っています。
システム開発で困っています。 Linux,Xウィンドウ環境で作成している画面プロセス(動作中)に対し、 他プロセスからマウスイベントを発行したいのですが・・・。 解決のヒントでも頂けたら助かります。
- 締切済み
- C・C++・C#
- challenger1201
- 回答数1
- INIファイルからのデータ読込みについて
表題の実現方法について、どうしてもわからなかったので、質問を挙げさせていただきます。 会社から、INIファイルの内容を読み込んで、初期値設定に利用するように指示があり、実現方法がわからず、非常に困っています。 ライブラリを購入せずに、対応したいです。 どなたか、本内容にお詳しい方、ご教授下さい。 ◆開発環境 言語:C OS:Linux(Ubuntu 9.10) IDE:eclipse コンパイラ:gcc 4.4 ◆質問 1.セクションで区切られたIniファイルを読み込み、読み込んだデータを各種変数に格納したい。 《想定Iniファイル》 Test.ini [NETWORK] IPADDR=192.***.***.***.*** → char *IPADDRに格納したい PORT=**** → long PORTに格納したい [PRM1] Anum=*** → char *Anumに格納したい Bnum=*** → char *Bnumに格納したい Cnum=*** → char *Cnumに格納したい [PRM2] TIME1=**** TIME2=**** 2.上記1の処理を関数とし、main関数からコールして、mainプログラムの起動時にINIファイル内容を読み込みたい。
- ベストアンサー
- C・C++・C#
- noname#107905
- 回答数5
- ホワイトボックステストの条件網羅について
ホワイトボックステストの条件網羅について質問です。 (1)確認ですが、条件網羅のカバレッジはC2でいいのでしょうか? これは会社によって呼び方が違ったりしますか? それともISOかなんかで取り決めがあるのでしょうか? (2)条件網羅のやり方として、if( a or b )だとしたら aが1と0、bが1と0を試せばいいと言う事でしょうか? だから、パターンとして、 パターン1:aが0、bが1のとき。aが1、bが0のとき パターン2:aが1、bが1のとき。aが0、bが0のとき この二つのパターンがあるということでいいでしょうか? この理解があっているかご確認いただきたく。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- noname#142813
- 回答数2
- メモリマップドファイルは動作原理的に…
QueryPerformanceCounterを使ってそれほど複雑でない関数でのベンチマークを行ったところ 今のところ全ての場合においてメモリマップドファイルのほうが単純なファイルの読み書きより高速でした。 (こんないい機能があったなんて…(笑)) それほど差がない場合もありましたが、場合によっては100倍以上もの差になった時もあります。(実メモリと比較したら全然ではありますが) メモリに困ることは最近それほどなかったので、、仮想メモリのスワップアウトが起きるとどれくらいの速度で動作することになるのか 全く実感できなかったのですが 1.このメモリマップドファイルは 原理的に、それを明示的に行うようなものとみなして問題ないでしょうか? 2.書き込み可能な属性で作り CreateFileMappingに指定するサイズがファイルサイズより大きかった場合はファイルが拡張され、それ以下だった場合はそのままのようです。 しかし、実際にそれ未満の数値を指定して、その指定したサイズ以上のアドレスのところへ書き込もうとすると、メモリの場合サクッと不正終了してくれるので逆におかしいところがあることが分かるので安心できるともいえるのですが、こちらはファイルサイズに余裕があれば、指定したサイズを超えた部分へもどうやら書き換えることができてしまうようです。 この場合、もしファイルサイズすら超えた数値へ間違って書き込み命令を出してしまった場合、切り捨てられるのでしょうか?それともどこか別のところが書き換えられてしまう危険があるのでしょうか? 3.また、試したら出来てしまったのですが 別のポインタを使って操作するのは「通常の動作」でしょうか? それとも未定義の動作でしょうか? 例) ・ ・ ・ char *a = (char*)MapViewOfFile( hMap, FILE_MAP_WRITE , 0, 0, 0); wsprintf(a,"aaaaaa"); char *b= a+3; wsprintf(b,"bbbbbb"); b+=3; wsprintf(b,"ccc"); UnmapViewOfFile( a ); ・ ・ ・ 結果: aaabbbccc
- ベストアンサー
- C・C++・C#
- LongSecret
- 回答数3
- 他のアプリケーションの状態を知る方法
複数のアプリケーションを順番に切り替えるプログラムを作っています。 アプリ1の処理がおわったらアプリ2で別のことをさせるつもりです。 このアプリ1の処理が終わったことを知りたいのですが良い方法はありませんか。処理はプリンターポートに対する一連のI/O処理です。特殊なドライバーを使用しています。 アプリ1は市販のソフトで内部はブラックボックスです。 処理が終わっても終了はしません。
- 他のアプリケーションの状態を知る方法
複数のアプリケーションを順番に切り替えるプログラムを作っています。 アプリ1の処理がおわったらアプリ2で別のことをさせるつもりです。 このアプリ1の処理が終わったことを知りたいのですが良い方法はありませんか。処理はプリンターポートに対する一連のI/O処理です。特殊なドライバーを使用しています。 アプリ1は市販のソフトで内部はブラックボックスです。 処理が終わっても終了はしません。
- VC++ V6.0 MFC Win98環境にて
VC++ V6.0 MFC Win98環境にて VC++ V6.0 MFC Win98環境にて リストボックスにファイルリストを作ろうとしています。 リストボックスに m_file を割り当て、以下のようにしました。 m_file.ResetContent(); m_file.Dir( DDL_READWRITE | DDL_READONLY, "C:\\*.*" ); m_file.SetCurSel( 0 ); これでリストさせると8.3ファイル名表示となってしまいます。 どうしたらWin98環境でロングファイル名で表示させることができますか? FindFile で自分探し AddString するとか・・・!? ちなみにWin2000ではOKでした。 よろしくお願いします。
- C++のvectorについて教えてください。
C++のvectorについて教えてください。 現在悩んでいる問題について簡単に説明するために、テストコードを書きました。 #include <vector> class IntType { private: int num; public: IntType( int n ):num( n ){}; }; std::vector< IntType > IntVector; void main() { } このコードをDebug版でコンパイルすると 1>c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(285) : error C2784: 'bool std::operator <(const std::reverse_iterator<_RanIt> &,const std::reverse_iterator<_RanIt2> &)' : テンプレート 引数を 'const std::reverse_iterator<_RanIt> &' に対して 'const size_t' から減少できませんでした 1> c:\program files (x86)\microsoft visual studio 9.0\vc\include\xutility(2236) : 'std::operator <' の宣言を確認してください。 のようなエラーが出ます。 しかし、Release版でコンパイルするとコンパイルは通ります。 Debug版でコンパイルを通すにはどのようなコードを追加すればよいでしょうか? 知恵を貸してください。 よろしくおねがいします。 /** VisualStudio2008 AcademiEdition */
- DAQの出力ファイルをコピーして、別のファイルを作成し、そのファイルを
DAQの出力ファイルをコピーして、別のファイルを作成し、そのファイルを元にリアルタイムに解析をしたいのですが、これって可能でしょうか?先のエントリ(http://okwave.jp/qa/q5699052.html)と連関しているのですが、DAQの出力ファイルを排他制御する一手(?)として、出力ファイルをコピーし、別ファイルとして保存して、そのファイルを元に解析出来ないかと考えています。C言語は殆ど分かっていないのですが、私が調べた限りでは、ファイルをコピーする際、やはりfopenを使わないといけないという結論に至りました。すなわち、この方法でも排他制御は出来ないという事になるのだろうと理解しております。どなたか、私の理解が正しいか否か教えていただけますでしょうか。よろしくお願いいたします。
- malloc関数によるメモリの確保
C初心者です。 malloc関数によるメモリの確保に関して教えてください。 2次元配列のサイズに対してmalloc関数の引数値をたとえば、 (double*)malloc(datasize*sizeof(double)) などとしメモリ領域を確保すると、メモリアドレスはデータのサイズ によらず一定 1234044、1234048となります。 データサイズを大きくし、datasize*sizeof(double)が16Kバイトを超えるとcmd.exeがエラーとなり落ちます。 デバックモードで実行すると 「"System.AccessViolationException"のハンドルされていない例外が不明なモジュールです。で発生しました。 追加情報:保護されているメモリに読み取りまたは書き込み操作を行おうとしました。他のメモリがこわれていることが考えられます」 というメッセージがでます。 コンパイラはExpressEdition2008です。 この現象を回避するにはどうすべきか、なぜこのようなことが起こるのかご教授ください。 よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- bonzomania
- 回答数3
- バイナリデータを頭から読むのではなく、最後部の一部を読み出すプログラム
バイナリデータを頭から読むのではなく、最後部の一部を読み出すプログラムって、存在するのでしょうか? いつもお世話になっております。時系列データを記録している最中に保存されているバイナリファイルから、最新のデータ(1秒前後)を取得したいと思っております。いろいろ見てみましたが、今のところ見当がつきません。ご存知の方、どうかご教授ください。
- C言語についての問題です。
この問題はできるのでしょうか?? 教えてください。 /*例題*/ 観測回数 3 X座標 X軸方向の流速 34.333 9.762 Y座標 Y軸方向の流速 448.111 -17.032 サイズ サイズの変化量 9.000 2.000 0.000 0.000 3 34.333 9.762 448.111 -17.032 9.000 2.000 0.000 0.000 3 20.615 5.329 688.385 -17.115 13.000 -1.000 0.000 0.000 3 1.200 0.200 1018.667 -17.333 15.000 1.000 0.000 0.000 3 0.375 0.042 1065.000 -17.500 8.000 2.000 0.000 0.000 3 53.750 17.114 22.333 -16.758 12.000 1.000 0.000 0.000 ・ ・ ・ ・ ・ 2 2014.273 -0.352 1233.727 17.727 11.000 3.000 0.000 0.000 2 2014.000 -0.625 1282.500 17.500 12.000 4.000 0.000 0.000 1 22.088 19.302 3.971 -20.493 34.000 6.000 0.000 0.000 1 19.636 16.812 122.909 -17.326 11.000 -6.000 0.000 0.000 のデータが6000個あります。 まず観測回数で昇順にソートして、その昇順に表示したものを x軸方向の流速 + y軸方向の流速 で昇順にソートして並べて表示する問題です。 x座標、y座標、サイズ、サイズの変化量は今ないものとします。 良ければプログラムおしえていただきたいのですが??
- なぜアロケーションエラーになるのかが分かりません
環境 WindowsXP + VC6++ 自作アプリが動作中に作成するログをいつまでも取っておくと DISKFULLになるため一定期間(90日)以上前のファイルを削除すべく 以下のような関数を作りスレッドとして起動しました (一部書き直してます) ところがこの処理動かすとアプリケーションが ほぼ3時間でハングアップします デバッガのスタック見ると nTime.Format("%Y/%m/%d %H:%M:%S"); などのCString代入辺りでアロケーションエラーを起こしているようです (タスクマネージャとかでは殆ど変動ありません) なんでエラーになるんだろう状態なんですが何か問題あるのでしょうか? 自分的には問題ないと思ってるんですが思い込みの可能性もあるので 何かありましたら御指摘願います int EraseFile(const char *folderfile, 自作Dialogクラス* pClass) { char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_PATH]; char ext[_MAX_EXT]; _splitpath(folderfile, drive, dir, fname, ext); int c = 0; CFileFind finder; BOOL bWorking = finder.FindFile(folderfile); while((bWorking) && (pClass->th_end_flg == 0)) { bWorking = finder.FindNextFile(); sprintf(fname, "%s\\%s\\%s\\*.*", drive, dir,finder.GetFileName()); if(finder.IsDots()) {// カレント・親フォルダなら無視 continue; } if(finder.IsDirectory()) {// フォルダだったらフォルダ以下削除チェック if (EraseFile(fname, pClass) != 0) { c ++; continue; } sprintf(fname, "%s", finder.GetFilePath()); CTime nTime = CTime::GetCurrentTime(); CTime fTime; finder.GetLastWriteTime(fTime) ; CString s, s1; s = nTime.Format("%Y/%m/%d %H:%M:%S"); s1 = fTime.Format("%Y/%m/%d %H:%M:%S"); nTime -= CTimeSpan(90, 0, 0, 0); s = nTime.Format("%Y/%m/%d %H:%M:%S"); if (nTime <= fTime) { return(1); } sprintf(fname, "%s\\%s\\%s\\", drive, dir, finder.GetFileName()); _rmdir(fname); return(c); } sprintf(fname, "%s", finder.GetFilePath()); CTime nTime = CTime::GetCurrentTime(); CTime fTime; finder.GetLastWriteTime(fTime) ; CString s, s1; s = nTime.Format("%Y/%m/%d %H:%M:%S"); s1 = fTime.Format("%Y/%m/%d %H:%M:%S"); nTime -= CTimeSpan(90, 0, 0, 0); s = nTime.Format("%Y/%m/%d %H:%M:%S"); if (nTime <= fTime) { c ++; continue; } CFile::Remove(fname); } return(c); } //---------------------------------- //スレッド本体 //---------------------------------- UINT 自作Dialogクラス::LogFileAutoEraseThread(PVOID pParam) { 自作Dialogクラス* pClass=(自作Dialogクラス*)pParam; while(pClass->th_end_flg == 0){ char drive[_MAX_DRIVE]; char dir[_MAX_DIR]; char fname[_MAX_PATH]; char ext[_MAX_EXT]; Sleep(10); _splitpath(アプリケーション実行モジュールフルパス, drive, dir, fname, ext); sprintf(fname, "%s\\%s\\%s\\*.*", drive, USER_NAME_FOLDER, RESULT_FILE_OUTPUT_PATH); EraseFile(fname, pClass); Sleep(10); sprintf(fname, "%s\\%s\\%s\\*.*", drive, USER_NAME_FOLDER, RESULT_FILE_OUTPUT_CSV); EraseFile(fname, pClass); Sleep(10); sprintf(fname, "%s\\%s\\Log\\*.*", drive, USER_NAME_FOLDER); EraseFile(fname, pClass); } return(0); }
- C言語を用いて、GNUPLOTでリアルタイムにグラフ化方法について。
C言語を使用して、GNUPLOTを呼び出し、時間とともに更新されていくデータをリアルタイムでグラフ化しようと思っていますが、なかなかうまくいきません。 私が考えていた簡単なプログラムのシーケンスとして、(OSはLinuxです。) ~データの作成~ fopen;データファイルの作成 fprintf;/データの作成 fclose;/データの保存 ~グラフ化~ popen;/GNUPLOTの呼出 fprintf(---,”plot \”[作成したデータファイル]\”\n”);/グラフ化 ~データの更新~ fopen; fprintf; fclose;/データの上書き ~グラフの更新~ fprintf(---,”reread\n”);/データの再読み込み fprintf(---,”replot\n”);/グラフの更新 ~データの更新~ ~グラフの更新~ ・・・/ループ pclose;/GNUPLOTの終了 と、データを更新したら、グラフ化をしていく予定でした(汗)。 テスト的に10回だけデータの更新をするプログラムを動作させると、 データの更新を先に全部行ってしまい、グラフ化されるのが、最後の更新データのみでした。 どのようにしたら、リアルタイムにデータをプロットできるでしょうか?? よろしくお願い致します。