hidebun の回答履歴
- クラスのファイル分割について
こんにちは。JavaをやっていましたがC++が必要になってC++を勉強している者です。 クラスを別のファイルに分割する際の書き方についてなのですが、 --Graph.h-- struct edge{ int to, cost; edge(int to,int cost){ this->to = to; this->cost = cost; } } class dijkstra{ public: vector<edge> *G; ~~~ void set_graph(int N); void add_edge(int a, int b, int cost); ~~~ } ---- --Dijkstra.cpp-- void dijkstra::set_graph(int N){ G = new vector<edge>[N]; } void dijkstra::add_edge(int a,int b,int cost){ G[a].push_back(edge(b,cost)); } ---- としたとき、当方の開発環境のEclipseは「push_backの引数と合わない」といった旨のエラーを出しています。何が悪いのでしょうか。ご教授お願いします。
- 複数のカメラ認識について
複数のカメラ認識について VC++とopencvで複数(現在は3台)のカメラの認識プログラムを作成しているのですがどこのポートにどのカメラがささっているのかという認識の方法が分かりません。 イメージングデバイスから3台の見分けをつけれるかと思いましたがうまくできずに困ってます。 各カメラを認識するコマンドが分かる方お願いします。 ちなみにカメラは ロジクールウェブカメラQcam Pro 4000です。
- ベストアンサー
- C・C++・C#
- nh19880423
- 回答数2
- 複数のカメラ認識について
複数のカメラ認識について VC++とopencvで複数(現在は3台)のカメラの認識プログラムを作成しているのですがどこのポートにどのカメラがささっているのかという認識の方法が分かりません。 イメージングデバイスから3台の見分けをつけれるかと思いましたがうまくできずに困ってます。 各カメラを認識するコマンドが分かる方お願いします。 ちなみにカメラは ロジクールウェブカメラQcam Pro 4000です。
- ベストアンサー
- C・C++・C#
- nh19880423
- 回答数2
- IOException が発生します
お知恵をお貸しください。 Microsoft Visual C# 2010 にて以下のコードを実行したところ、 Windows7 および Vista では正常に動作しましたが、 WindowsXP SP3 では画像のエラーが表示されます。 エラーとなるコード: NamedPipeServerStream pipeIn = new NamedPipeServerStream("xxx", PipeDirection.In, 1, PipeTransmissionMode.Message); 何か解決の糸口はないでしょうか。
- BASICか、C#か、C++で、こんな物を作りたい
BASICか、C#か、C++で <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cab … width="300" height="300"><param name="movie" value="ここ"><param name="quality" value="high"><param name="wmode" value="transparent"><embed src="ここ" width="300" height="300" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download … type="application/x-shockwave-flash" wmode="transparent"></embed></object> 入力した文字を上の2つの「ここ」の部分にあてられたのもを生成ボタンで生成されそれをコピーするボタンがついていてそれをコピーできるソフトを作りたいのですが、詳しい作り方を教えてくれませんか?(ボタンの作製や入力欄の作成の方法とか、コードも。 ちなみに使っているソフトは、Microsoft Visual Basic 2010 Express、Microsoft Visual C# 2010 Express、Microsoft Visual C++ 2010 Expressです。 プログラミングについてあまり知らないのですがどうかお願いします。
- VC Express ユーザー権限での使用方法
Microsoft Visual C++ 2010 Express を、Administrator 権限のない(インストールできない)状態で使う方法を、ご存知の方がいらっしゃいましたら教えていただきたくお願いします。 推奨される条件ではないかもしれませんが、そこを可能にする方法をお願いします。 レジストリを編集すれば使えるのでしょうか・・ cl.exe やその他関連ファイルへのパスを一通り通しても、 「cl : コマンド ライン error D8027 : 'C:\My Program Files(自作フォルダ)\Microsoft Visual Studio 10.0\VC\BIN\c1xx.dll' を実行できません」というエラーが出て、コンパイルもできませんでした。 OS : Windows XP 用途 : コマンドラインベースの実行ファイルを、 cl, link, nmake などコマンドラインツールを使って(GUIのウィザード類を使わず)ビルドしたいと考えております。
- ベストアンサー
- C・C++・C#
- akira09810985
- 回答数4
- VC Express ユーザー権限での使用方法
Microsoft Visual C++ 2010 Express を、Administrator 権限のない(インストールできない)状態で使う方法を、ご存知の方がいらっしゃいましたら教えていただきたくお願いします。 推奨される条件ではないかもしれませんが、そこを可能にする方法をお願いします。 レジストリを編集すれば使えるのでしょうか・・ cl.exe やその他関連ファイルへのパスを一通り通しても、 「cl : コマンド ライン error D8027 : 'C:\My Program Files(自作フォルダ)\Microsoft Visual Studio 10.0\VC\BIN\c1xx.dll' を実行できません」というエラーが出て、コンパイルもできませんでした。 OS : Windows XP 用途 : コマンドラインベースの実行ファイルを、 cl, link, nmake などコマンドラインツールを使って(GUIのウィザード類を使わず)ビルドしたいと考えております。
- ベストアンサー
- C・C++・C#
- akira09810985
- 回答数4
- VC Express ユーザー権限での使用方法
Microsoft Visual C++ 2010 Express を、Administrator 権限のない(インストールできない)状態で使う方法を、ご存知の方がいらっしゃいましたら教えていただきたくお願いします。 推奨される条件ではないかもしれませんが、そこを可能にする方法をお願いします。 レジストリを編集すれば使えるのでしょうか・・ cl.exe やその他関連ファイルへのパスを一通り通しても、 「cl : コマンド ライン error D8027 : 'C:\My Program Files(自作フォルダ)\Microsoft Visual Studio 10.0\VC\BIN\c1xx.dll' を実行できません」というエラーが出て、コンパイルもできませんでした。 OS : Windows XP 用途 : コマンドラインベースの実行ファイルを、 cl, link, nmake などコマンドラインツールを使って(GUIのウィザード類を使わず)ビルドしたいと考えております。
- ベストアンサー
- C・C++・C#
- akira09810985
- 回答数4
- COMポート 名前を取得する方法
VC++2008Express Win32Api COMポートの名前Portnameを調べて Listboxに表示させたいと思います。 以下のようにレジストリからフレンドリーネームとかは 取得できるようになったのですが レジストリのフォルダのVIDとかなんちゃらの部分の値は取得できるのですが その1階層下のParameterの中にあるPortNameを取得したいです。 要するにCOM6などの部分だけが欲しいです。 どなたか、ご教示ください。よろしくお願いします。 BYTE Buffer[256]; DWORD Length = 0; SP_DEVINFO_DATA DeviceInfoData = {sizeof(SP_DEVINFO_DATA)}; HDEVINFO hDevInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_COMPORT, NULL, NULL, (DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)); int ret = SetupDiEnumDeviceInfo( hDevInfo, 0, &DeviceInfoData ); SetupDiGetDeviceRegistryProperty( hDevInfo, &DeviceInfoData, SPDRP_DEVICEDESC, NULL, Buffer,sizeof(Buffer),&Length ); MessageBox( NULL,(LPCWSTR)Buffer , 0 , MB_OK ); SetupDiDestroyDeviceInfoList(hDevInfo);
- C言語の質問です。
プログラムを書こうとしているのですが、行き詰まるっているのでアドバイスください。 ○データ 0 0 1 2 2 3 4 5 5 5 8 8 10 10 ・ ・ ・ このような整数がだんだん増えていく(1万以上の整数まで増えていく)書式のデータがあるとします。 僕の作りたいプログラムは 一万個以上あるすべてのデータを読み込んで個数を出す。というものです。 言葉で表現するのが難しいので例を出しますと 最終的にほしいものは データをすべて読み込んで 同じ整数がない整数の個数 同じ整数が2つの整数の個数 同じ整数が3つの整数の個数 ・ ・ 同じ整数が10つの整数の個数 ・ ・ このような情報がほしいと考えています。 例のデータで考えますと 同じ整数がない整数 =3 同じ整数が2つの整数=4 同じ整数が3つの整数=1 になります。 私が考えているやり方の手順 (1) データを読み込む (2) 読み込んだ整数のそれぞれのすべての個数を出す。 例:1=2個 15=1個 289=3個 (3) 出した個数の数を数えて出力。 という流れです。 私が行き詰まっているプログラム int main(void) { int i, n, hako[?]; ←1万個以上あるので箱を何個用意すればいいかわかりません // n は読み込んだデータ。 FILE *fp; 配列を使おうと思っているのですが。。。 fp=fopen("FILENAME","r"); ←データの読み込み if(fp==NULL) { printf("file open error!!\n"); exit(1); } for(i=1;i<?;i++); ←すべての箱をゼロクリアしたいのですが箱の個数がわかりません hako[i]=0; while(fsacanf(fp, "%d\n", &n)!=EOF){ if(i>n){hako[i]++;} if(i=n){ i++; hako[i]++; } printf("%d = %d\n", i ,hako[i]); } fclose(fp); return 0; } とりあえずは流れ(2)までのプログラムを書きたいと考えています。 配列が苦手なので混乱しています。 配列のhako[]のところで間違っていると思うのですがよくわからないので質問してみました どうぞよろしくお願いします。
- ベストアンサー
- C・C++・C#
- rikerume01
- 回答数13
- OpenMPによる並列処理で質問があります。
c言語でポアソン方程式を差分法で解くプログラムを作成し、それをOpenMPで並列化して、スレッド数を1,2,4,8と増やしながら処理時間の計測をしました。 スレッド数が2の時は処理時間が短くなったのですが、4,8と増やしていくごとに処理時間が逆に増えてしまいました。デュアルコア4プロセッサなのでコア数以上のスレッド数ではないはずなのですがこれはなぜなんでしょうか? 計測した解析領域は 48×48 72×72 の二つです。どちらも4、8スレッドの時は遅くなってしまいました。以下に並列化部分のソースを載せます。並列化した場所は、連立方程式を解く部分で、求解には、ガウス・ジョルダン法を用いています。並列化でまずいところがあればそちらも指摘お願いします。 for(k=0;k<=size-1;k++) { pivot=a[k][k]; #pragma omp parallel for for(j=0;j<=size-1;j++) { a[k][j]=a[k][j]/pivot; } b[k]=b[k]/pivot; #pragma omp parallel for private(j,tmp) for(i=0;i<=size-1;i++) { tmp=a[i][k]; if(i!=k) { for(j=0;j<=size-1;j++) { a[i][j]=a[i][j]-(tmp*a[k][j]); } b[i]=b[i]-(tmp*b[k]); } } }
- ADボードでリアルタイムサンプリング
プログラムはこちらです #define NUM 20000 void CAdDrawGraphDlg::OnFileout() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください int nRet; int i = 0, j = 0, file_count = 0; char fname[32]; HANDLE hDeviceHandle; ADSMPLREQ SmplConfig; ADBOARDSPEC BoardSpec; WORD wSmplData; FILE *fp = NULL; ULONG ulSmplNum = NUM; /* デバイスのオープン */ if((hDeviceHandle = AdOpen("FBIAD1")) == INVALID_HANDLE_VALUE){ AfxMessageBox("デバイスのオープンに失敗しました",MB_OK, 0); return; } nRet = AdGetSamplingConfig(hDeviceHandle,&SmplConfig); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("サンプリング設定情報の読み出しに失敗しました",MB_OK, 0); } nRet = AdGetDeviceInfo(hDeviceHandle, &BoardSpec); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("デバイスの情報取得にに失敗しました", MB_OK, 0); } while(1){ /* 無限ループ */ /*時間の取得*/ int H,M,S; /* config初期化 */ SmplConfig.SmplChReq[0].ulChNo = 2; // SmplConfig.ulSmplNum = NUM * i; //SmplConfig.ulTrigMode = AD_ETERNITY; SmplConfig.fSmplFreq = 20000; SmplConfig.SmplChReq[0].ulRange = AD_5V; nRet = AdSetSamplingConfig(hDeviceHandle, &SmplConfig); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("サンプリング条件設定に失敗しました",MB_OK, 0); } nRet = AdStartSampling(hDeviceHandle, FLAG_SYNC); /* 書き込みファイルのオープン */ sprintf(fname, "DATA.%d.csv", file_count); fp = NULL; if((fp = fopen(fname, "w")) == NULL){ /* error */ return; } setbuf(fp, NULL); /* ライブラリ内バッファリングを無効にする */ for(i = 0;; i++){ SmplConfig.ulSmplNum = NUM * i; wSmplData = 0; /* NUM回データを取得 */ for(j = 0; j < NUM; j++){ ulSmplNum = 1; double val; if(AdGetSamplingData(hDeviceHandle, &wSmplData, &ulSmplNum) != AD_ERROR_SUCCESS){ val = wSmplData; val = ((val * 10) / 4096) - 5; fprintf(fp, "%d, %f\n", i * NUM + j, val); //fprintf(fp, "[%d], %d, %d\n", ulSmplNum, i * NUM + j, wSmplData); } else{ val = wSmplData; val = ((val * 10) / 4096) - 5; CTime theTime=CTime::GetCurrentTime(); // mm=theTime.GetMonth(); // dd=theTime.GetDay(); H =theTime.GetHour(); M =theTime.GetMinute(); S =theTime.GetSecond(); fprintf(fp, "%d,%d:%d:%d, %f\n", i * NUM + j,H,M,S, val); //fprintf(fp, "%d, %d, %d\n", ulSmplNum, i * NUM + j, wSmplData); } } if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("CSVファイル作成に失敗しました", MB_OK, 0); } } /* end of for */ fclose(fp); file_count++; } /* end of while */ /* デバイスのクローズ */ nRet = AdClose(hDeviceHandle); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("デバイスのクローズに失敗しました"); } fclose(fp); } 問題は20000点で1秒時刻が進むはずですが2000点で1秒時計が進んでしまいます。 時刻以外は正常で、1周期1sの波形を入力したときはそのしっかり20000点存在するので1秒間に 20000点でサンプリングしています。 解決策があれば教えてください。
- 締切済み
- C・C++・C#
- masasugi0518
- 回答数2
- ADボードでリアルタイムサンプリング
プログラムはこちらです #define NUM 20000 void CAdDrawGraphDlg::OnFileout() { // TODO: この位置にコントロール通知ハンドラ用のコードを追加してください int nRet; int i = 0, j = 0, file_count = 0; char fname[32]; HANDLE hDeviceHandle; ADSMPLREQ SmplConfig; ADBOARDSPEC BoardSpec; WORD wSmplData; FILE *fp = NULL; ULONG ulSmplNum = NUM; /* デバイスのオープン */ if((hDeviceHandle = AdOpen("FBIAD1")) == INVALID_HANDLE_VALUE){ AfxMessageBox("デバイスのオープンに失敗しました",MB_OK, 0); return; } nRet = AdGetSamplingConfig(hDeviceHandle,&SmplConfig); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("サンプリング設定情報の読み出しに失敗しました",MB_OK, 0); } nRet = AdGetDeviceInfo(hDeviceHandle, &BoardSpec); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("デバイスの情報取得にに失敗しました", MB_OK, 0); } while(1){ /* 無限ループ */ /*時間の取得*/ int H,M,S; /* config初期化 */ SmplConfig.SmplChReq[0].ulChNo = 2; // SmplConfig.ulSmplNum = NUM * i; //SmplConfig.ulTrigMode = AD_ETERNITY; SmplConfig.fSmplFreq = 20000; SmplConfig.SmplChReq[0].ulRange = AD_5V; nRet = AdSetSamplingConfig(hDeviceHandle, &SmplConfig); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("サンプリング条件設定に失敗しました",MB_OK, 0); } nRet = AdStartSampling(hDeviceHandle, FLAG_SYNC); /* 書き込みファイルのオープン */ sprintf(fname, "DATA.%d.csv", file_count); fp = NULL; if((fp = fopen(fname, "w")) == NULL){ /* error */ return; } setbuf(fp, NULL); /* ライブラリ内バッファリングを無効にする */ for(i = 0;; i++){ SmplConfig.ulSmplNum = NUM * i; wSmplData = 0; /* NUM回データを取得 */ for(j = 0; j < NUM; j++){ ulSmplNum = 1; double val; if(AdGetSamplingData(hDeviceHandle, &wSmplData, &ulSmplNum) != AD_ERROR_SUCCESS){ val = wSmplData; val = ((val * 10) / 4096) - 5; fprintf(fp, "%d, %f\n", i * NUM + j, val); //fprintf(fp, "[%d], %d, %d\n", ulSmplNum, i * NUM + j, wSmplData); } else{ val = wSmplData; val = ((val * 10) / 4096) - 5; CTime theTime=CTime::GetCurrentTime(); // mm=theTime.GetMonth(); // dd=theTime.GetDay(); H =theTime.GetHour(); M =theTime.GetMinute(); S =theTime.GetSecond(); fprintf(fp, "%d,%d:%d:%d, %f\n", i * NUM + j,H,M,S, val); //fprintf(fp, "%d, %d, %d\n", ulSmplNum, i * NUM + j, wSmplData); } } if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("CSVファイル作成に失敗しました", MB_OK, 0); } } /* end of for */ fclose(fp); file_count++; } /* end of while */ /* デバイスのクローズ */ nRet = AdClose(hDeviceHandle); if(nRet != AD_ERROR_SUCCESS){ AfxMessageBox("デバイスのクローズに失敗しました"); } fclose(fp); } 問題は20000点で1秒時刻が進むはずですが2000点で1秒時計が進んでしまいます。 時刻以外は正常で、1周期1sの波形を入力したときはそのしっかり20000点存在するので1秒間に 20000点でサンプリングしています。 解決策があれば教えてください。
- 締切済み
- C・C++・C#
- masasugi0518
- 回答数2
- windowsへのswigのインストール
swigのインストールができず困っております。どなたか詳しい方いらっしゃいましたらお知恵をお貸しいただけたらと思います。 http://www.kkaneko.com/rinkou/cygwin/swig.html を参考にswigのインストールを試みました。 現在の状況です。 cygwinインストール後,下記より,swigwin-1.3.40をダウンロードしました。 http://sourceforge.net/projects/swig/files/ これをWクリックで解凍して,C:\tempへ入れました。 cygwinのシェルからC:\temp\swigwin-1.3.40へ移動し, ./configure とタイプしました。エラーは出ませんでした。 続いて, make とタイプしましたが,下記のエラーが出てしまいました。 $ make C:\mingw\bin\make.exe[1]: Entering directory `C:/temp/swigwin-1.3.40/Source' C:/mingw/bin/make.exe all-am make.exe[2]: Entering directory `C:/temp/swigwin-1.3.40/Source' process_begin: CreateProcess((null), /usr/bin/mkdir -p CParse, ...) failed. make (e=3): 指定されたパスが見つかりません。 make.exe[2]: *** [CParse/.dirstamp] Error 3 make.exe[2]: Leaving directory `C:/temp/swigwin-1.3.40/Source' C:\mingw\bin\make.exe[1]: *** [all] Error 2 C:\mingw\bin\make.exe[1]: Leaving directory `C:/temp/swigwin-1.3.40/Source' C:\mingw\bin\make.exe: *** [source] Error 2 swigwin-1.3.40ではなく,swig-1.3.40,swig-2.0.4,swigwin-2.0.4でも同様のことを試みましたが同じエラーが出てしまいました。再起動後に試しても同様でした。 どなたか原因が分かる方いらっしゃいましたら教えていただけたら助かります。 よろしくお願い致します。 なお,1点気になることとして,cygwinの起動の際に, bash: /cygdrive/c/usr/local/share/ispell/.bash_profile: line 4: シンタックス エ ラー: 期待してないファイルの終了 というメッセージが毎回出力されます。 OSはWINXPSP3,swigのインストールの目的はpyOptをインストールするのに必要なためです。 よろしくお願い致します。 相当調べましたが,MinGWとMSYSを入れてうんぬんという方法もあるみたいでしたが,道のりが長そうなのでできれば上記エラーが解決できたらと考えています。
- ベストアンサー
- C・C++・C#
- noname#182764
- 回答数3
- windowsへのswigのインストール
swigのインストールができず困っております。どなたか詳しい方いらっしゃいましたらお知恵をお貸しいただけたらと思います。 http://www.kkaneko.com/rinkou/cygwin/swig.html を参考にswigのインストールを試みました。 現在の状況です。 cygwinインストール後,下記より,swigwin-1.3.40をダウンロードしました。 http://sourceforge.net/projects/swig/files/ これをWクリックで解凍して,C:\tempへ入れました。 cygwinのシェルからC:\temp\swigwin-1.3.40へ移動し, ./configure とタイプしました。エラーは出ませんでした。 続いて, make とタイプしましたが,下記のエラーが出てしまいました。 $ make C:\mingw\bin\make.exe[1]: Entering directory `C:/temp/swigwin-1.3.40/Source' C:/mingw/bin/make.exe all-am make.exe[2]: Entering directory `C:/temp/swigwin-1.3.40/Source' process_begin: CreateProcess((null), /usr/bin/mkdir -p CParse, ...) failed. make (e=3): 指定されたパスが見つかりません。 make.exe[2]: *** [CParse/.dirstamp] Error 3 make.exe[2]: Leaving directory `C:/temp/swigwin-1.3.40/Source' C:\mingw\bin\make.exe[1]: *** [all] Error 2 C:\mingw\bin\make.exe[1]: Leaving directory `C:/temp/swigwin-1.3.40/Source' C:\mingw\bin\make.exe: *** [source] Error 2 swigwin-1.3.40ではなく,swig-1.3.40,swig-2.0.4,swigwin-2.0.4でも同様のことを試みましたが同じエラーが出てしまいました。再起動後に試しても同様でした。 どなたか原因が分かる方いらっしゃいましたら教えていただけたら助かります。 よろしくお願い致します。 なお,1点気になることとして,cygwinの起動の際に, bash: /cygdrive/c/usr/local/share/ispell/.bash_profile: line 4: シンタックス エ ラー: 期待してないファイルの終了 というメッセージが毎回出力されます。 OSはWINXPSP3,swigのインストールの目的はpyOptをインストールするのに必要なためです。 よろしくお願い致します。 相当調べましたが,MinGWとMSYSを入れてうんぬんという方法もあるみたいでしたが,道のりが長そうなのでできれば上記エラーが解決できたらと考えています。
- ベストアンサー
- C・C++・C#
- noname#182764
- 回答数3
- windowsへのswigのインストール
swigのインストールができず困っております。どなたか詳しい方いらっしゃいましたらお知恵をお貸しいただけたらと思います。 http://www.kkaneko.com/rinkou/cygwin/swig.html を参考にswigのインストールを試みました。 現在の状況です。 cygwinインストール後,下記より,swigwin-1.3.40をダウンロードしました。 http://sourceforge.net/projects/swig/files/ これをWクリックで解凍して,C:\tempへ入れました。 cygwinのシェルからC:\temp\swigwin-1.3.40へ移動し, ./configure とタイプしました。エラーは出ませんでした。 続いて, make とタイプしましたが,下記のエラーが出てしまいました。 $ make C:\mingw\bin\make.exe[1]: Entering directory `C:/temp/swigwin-1.3.40/Source' C:/mingw/bin/make.exe all-am make.exe[2]: Entering directory `C:/temp/swigwin-1.3.40/Source' process_begin: CreateProcess((null), /usr/bin/mkdir -p CParse, ...) failed. make (e=3): 指定されたパスが見つかりません。 make.exe[2]: *** [CParse/.dirstamp] Error 3 make.exe[2]: Leaving directory `C:/temp/swigwin-1.3.40/Source' C:\mingw\bin\make.exe[1]: *** [all] Error 2 C:\mingw\bin\make.exe[1]: Leaving directory `C:/temp/swigwin-1.3.40/Source' C:\mingw\bin\make.exe: *** [source] Error 2 swigwin-1.3.40ではなく,swig-1.3.40,swig-2.0.4,swigwin-2.0.4でも同様のことを試みましたが同じエラーが出てしまいました。再起動後に試しても同様でした。 どなたか原因が分かる方いらっしゃいましたら教えていただけたら助かります。 よろしくお願い致します。 なお,1点気になることとして,cygwinの起動の際に, bash: /cygdrive/c/usr/local/share/ispell/.bash_profile: line 4: シンタックス エ ラー: 期待してないファイルの終了 というメッセージが毎回出力されます。 OSはWINXPSP3,swigのインストールの目的はpyOptをインストールするのに必要なためです。 よろしくお願い致します。 相当調べましたが,MinGWとMSYSを入れてうんぬんという方法もあるみたいでしたが,道のりが長そうなのでできれば上記エラーが解決できたらと考えています。
- ベストアンサー
- C・C++・C#
- noname#182764
- 回答数3
- FindFirstFileについて教えてください。
Visual Studio C++ 2010 Expressを利用して、C言語のプログラムを作成しています。 その中でFindFirstFileを使っています。 Visual Studio上でWin32コンソールアプリのプロジェクトを作成して、このプログラムをコンパイルしました。 プロジェクトのプロパティは変更していません。 コンパイルしたものを実行すると戻り値としてINVALID_HANDLE_VALUEが返ってきて、ファイルのリストを取得できませんでした。 一方で、コマンドプロンプト上でMakefileを作成し、同じソースをコンパイルした場合は、ファイルのリストを正常に取得することが出来ます。 従いまして、おそらくプログラムは問題ないと思います。 Visual Studioのプロジェクトで、何かプロパティの設定が必要でしょうか? 実行環境は、Windows7 64-bitです。 何かご存知の方いらっしゃいましたら、教えて頂けますか?
- ベストアンサー
- C・C++・C#
- artemis3225
- 回答数2
- C++の統合開発環境について
質問させていただきます. 私、大学四年生で卒業研究の為にC++のアプリケーションを組もうと思っています. そのC++の統合開発環境についてなのですが... 私の家のパソコンは、windowsです.そして、研究室のパソコンはMacです. 研究室だけでなく、家でも作業を進めたいので、IDEをそろえたい、または互換性のある環境に整えたいと思っています. そして、私の研究にはCERNのROOTというC++のライブラリ群を使いたいと思っています. IDEをふかく使い込んだ事がないので、今の印象だと Visual Studio : CERNがROOTを使った開発において、推奨しているIDE です. インクルードパスの追加などが楽なのでぜひともこれを使いたいが、Macには非対応なので研究室で使う事はできません. Eclipse&Netbeans:C++に対応しているみたいですが、実際の使い心地についてはわかりません.ただ、Macでもこれら二つは使えるので、家と研究室の双方で使用できると思います. Netbeansはインクルードパスの追加がVisualStudioやEclipseよりも面倒な印象があります. 少々わがままな要望だとはおもいますが、私の望みにあうような環境を整える為にはどのようにすればよいと思いますか? ご意見をお待ちしております.
- VC++ メインループでのイベント監視方法
こんにちは。 VC++2008Expressでプログラムをしようと思っている初心者です。 以下、変な疑問があり、お尋ねしたいと思います。 よろしくお願いします。 Windowsアプリケーション Win32API クラスで別スレッドを作成して、そのスレッドからのイベントを WinMainループで受け取る方法ですが 通常皆様はどういう風にするのでしょうか? クラスは、その他のプログラムでも流用可能で様々なアプリに対応しやすいようにしあげたいのですが。。 別スレッドでイベント発生時にWinMainにどのように教えるのが普通のやり方なんでしょうか? 僕の考えでは、WinMain関数内のループ内で常時イベント発生していないか 以下のように監視させるか eventloop el; while(GetMessage(&msg,NULL,0,0)) { TranslateMessage(&msg); DispatchMessage(&msg); if(el::boolEvent){ イベント処理へ } } とするのが良いか? これだとクラスの関数、変数の使い方さえ分かるようにしておけば流用は簡単 なのかなと思いますが。。 メインのループ内にこんな監視を入れるようなプログラムをみたことないので ナンセンスなのではと思います。 次に考えられるのは、クラスのイベント発生で作成したSendMessageを送って メッセージ処理でイベント処理をさせるのが良いのかなって思いますが これだと、流用するときに対応したMessage(キュー?ですかね)を作成しないといけなく 私的に分かりにくいなーって思います。。。 変なことで悩んで先に進まないのですが、皆様はどのようにコーディングされるのでしょうか? ちなみにイベントというのは、RS232Cで受信があって、そのデータを加工したあとで メモリに格納して格納しましたよってイベントです。 どうかよろしくお願いします。
- クラスでスレッド作成
VC++2008Express WIN32APIでRS232Cの通信用クラスを作成しています。 RS232Cの受信用スレッドを作成して 1ポートの受信処理をするようにはできます。 ですが ポート追加するたびにクラスをインスタンス化して受信用スレッドを 作成したいのですが、スレッド作成するには使用する変数などを staticにしないといけないため、クラスを複数インスタンス化できません。 どのような手法でクラスから複数スレッドを作成することができるのでしょうか? 分かりにくい説明ですが、参考になるものなどありましたら、 よろしくお願いします。