fresh_homepie の回答履歴

全61件中1~20件表示
  • DialogBox

    こんばんは 最近Windowsプログラムでツールを作ることになりまして 久しぶりにダイアログボックスを作成しようとして、いきなり躓きました;; DialogBox関数でダイアログを表示できないのですが、何か特別な処理って必要でしたっけ? 以下ソースコードです #include <windows.h> #include "resource.h" BOOL CALLBACK DialogProc(HWND, UINT, WPARAM, LPARAM); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR lpCmdLine, int nCmdShow ) { DialogBox(hInstance, MAKEINTRESOURCE("IDD_DIALOG"), NULL, (DLGPROC)DialogProc); return 0; } BOOL CALLBACK DialogProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: // ダイアログボックスが作成されたとき return TRUE; case WM_CLOSE: EndDialog(hWnd, IDOK); return TRUE; } return FALSE; } よろしくお願いします

  • 2次元vectorのerase?

    1行に4つのdouble型の値が書かれているファイルを読み込み、 iを行数として1行ずつphoton[i][0]~photon[i][3]に入れる。 photon[i][0]がある条件を満たしたらphoton[i][1]~photon[i][3]の値を photon[i-1][1]~photon[i-1][3]と photon[i+1][1]~photon[i+1][3]に 分けて加算し、photon[i][0]~photon[i][3]は消す(加算後の[i+1]が[i]に来るようにしたい)という作業をしたいのですが、消し方が良く分かりません。 やり方をご存知の方、回答お願いします。 以下のやり方では消えませんでした。vector<double>(4)のほうをeraseしてないからでしょうか。 ---------- #include <iostream> #include <fstream> #include <string> #include <list> #include <vector> using namespace std; int main(){ string str; ifstream ifs("h2o.csv"); ofstream ofs("h2o.txt"); int i = 0; double sum[3] = {0}; vector< vector<double> > photon(147, vector<double>(4)); double value[4] = {0}; for(;getline(ifs,str); i++){ sscanf(str.c_str(),"%lf,%lf,%lf,%lf", &value[0], &value[1], &value[2], &value[3]); photon[i][0] = value[0]; photon[i][1] = value[1]; photon[i][2] = value[2]; photon[i][3] = value[3]; sum[0] += value[1]; sum[1] += value[2]; sum[2] += value[3]; } for(vector< vector<double> >::iterator it = photon.begin(); it != photon.end(); it++){ if( (*it)[0] > 0.1){ cout << "delete!"; it = photon.erase(it); } cout << (*it)[0] << endl; } }

  • プログラミングの勉強仲間をつくるには

    非技術系会社員(OL)です。 プログラミングを独習しているのですが、IT系の方との接点がゼロで、一緒に勉強したりいろいろと教えて頂ける仲間(・・・先生?)がほしいです。 いまはC++をやっています。(ロベールのC++入門講座を読み終えたところで初心者です。) いまはCの派生言語で簡単なものを書いていますがこれからC++をつかってゲームなど作りたいと思っています。 IT勉強会などもみてみたのですがC++のものはなかなか見つかりません。 平日は夜遅くなってしまうので、できれば都内で週末などの勉強会があればとおもったのですが、やっぱりプログラミングはネット上で相談したりというのが普通なのでしょうか? アドバイスおねがいします。

  • メモリアドレスについて

    こんにちは サーバをアセンブラで出力したデータを参考にして、クライアントを作っています そこで、アセンブラで出力したデータを使っても、サーバの実行時にはメモリアドレスは変わるものでしょうか もしそうであれば、今やってる事は全て無駄になってしまいます よろしくお願いします

    • ベストアンサー
    • noname#192849
    • C・C++・C#
    • 回答数5
  • ビルドから除外されたソースのコンパイル

    現在、Visual Studioを使用してある巨大なプロジェクトを開発しています。言語は C++です。 このプロジェクトには、ソースファイル(*.cpp)が全部で1000以上もありま す。百ではありません、千です。 そのため、プロジェクトをビルドするのに30分以上もかかり、開発効率が非常に悪 くなっています。 コンパイル・リンクとも相当の時間がかかっています。実感としては、cpp1ファイ ルにつきコンパイル1秒かかっています。 (なぜそんなに大量のcppが必要なのかというのはここでは置いといてください) そこで、次のような方法でビルド時間を短縮する方法を考案しました。 (1)ある一定数のソースファイルのプロパティで「ビルドから除外」とする。 (2) (1)でビルドから除外したソースファイルを全てインクルードしたソース ファイルを作成し、プロジェクトに追加する。 [1つにまとめたソースファイルのイメージ] #include "src001.cpp" #include "src002.cpp" #include "src003.cpp" ・・・ #include "src999.cpp" ソースファイルを1つにまとめてしまう事による弊害は全て解決したものとします。 以上により、プロジェクト内のソースファイル数を100以下にまで減らし、無事ビ ルド時間が大幅に短縮されました。 と、ここまでは良かったのですが、一つ問題があります。 それは、「ビルドから除外」したソースファイルを単独でコンパイル出来なくなって しまうのです。(ここでは、そういうことをしたいという要望があると思ってくださ い) ソリューションエクスプローラでソースファイルを右クリックし、出てくるメニュー リストの「コンパイル」が無効表示され選択できません。 もちろん、コンパイルコマンド(cl.exe)をコマンドラインから直接叩いてやればい くらでも出来ますが、出来ればIDEから簡単な操作で行いたいのです。 また、チームで開発しているため、コンパイルする時だけソースファイルの設定を変 更するというようなことはしたくないのです。 この問題に対して、何か良い手段はないでしょうか? プロジェクトを複数モジュールに分離して・・・ とか、 プリコンパイル済みヘッダを利用して・・・ とか、 リビルド時間を短縮するためソース間の依存関係を減らして・・・ というような、質問の内容を超える回答はご遠慮ください。 そのようなことは、十分ではないかも知れませんが検討済みです。

  • Windows8+OpenGLで未処理の例外エラー

    Windows8 Pro のマシンで OpenGL を使うため、glut をインストールし、 簡単なサンプルをコンパイルして実行したところ、 「ユーザーコールバック中に未処理の例外エラーが発生しました」 というエラーを吐いて止まってしまいました。 統合環境は Visual C++2010 Express を利用しています。 サンプルプログラムは、以下の通りです。 #include <GL/glut.h> void display(void) { glClearColor(1.0, 1.0, 1.0, 1.0); glClear(GL_COLOR_BUFFER_BIT); glFlush(); } int main(int argc, char *argv[]) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGBA); glutInitWindowSize(640,480); glutCreateWindow(”window”); glutDisplayFunc(display); glutMainLoop(); return 0; } glut は様々なサイトで紹介されている方法通りに、 公式ページにて必要なファイル (32bit版) をダウンロードし、 glut.h を C:\Program Files (x86)\Microsoft Visual Stdio 10.0\VC\include\GL\ に、 glut32.lib を C:\Progma Files (x86)\Microsoft Visual Stdio 10.0\VC\lib\ に glut32.dll を C:\Windows\SysWOW64\ にコピーしました。 glut の代わりに freeglut も試してみたのですが、同様のエラーで止まってしまいました。 使用しているマシンは Surface Pro で ディスプレイアダプターは、 Intel(R) HD Graphics 4000 です。 ネットでいろいろ調べて Windows8 にインストールしている事例もちらほら見かけたので、 Windows8 でも動くとは思うんですが、どうにもうまくいきません。 dll が Windows8 に対応していないのか、Surface だから駄目なのか、検討がつきません。 原因をご存知の方がいましたら、どうか詳しく教えていただけないでしょうか? よろしくお願いします。

  • [C++]std:mapの扱いを教えて頂けますか?

    お忙し中、失礼します。 プログラミングのついて質問させて下さい。 使用言語: C++ 使用ヘッダファイル:<map> [質問] 動的確保したstd:mapを解放したいのですが、 mapの第二引数にクラスポインタを与えた場合、 登録したクラスのメンバ関数を呼び出すことは 出来るでしょうか? もし可能ならば、方法を教えて頂けないでしょうか?? 自作クラス class C; class test { //メンバ変数  private: C m_pC; //メンバ関数 public: test();     //コンストラクタ ~test();    //デストラクタ //初期化処理 void Init() { m_pC = new C(); } //終了処理   void Term() { delete m_pC; m_pC = NULL; }} }; map 定義 map< ID , test* >* pMap; マップ解放処理 std::map< ID ,test*>::iterator iterator; iterator = pMap->begin(); for(iterator ; iterator != pMap.End();iterator++) { //************************ // // ここでtestクラスの解放処理を呼び出したい // 例) test->Term() // //************************* } //マップ登録要素クリア pMap->clear(); まだ、mapの仕様が分かっておらず勉強中の身で 申し訳ないです。 助言頂ければ幸いです。 どうかよろしくお願いします。

  • if文の中ではwinsockのsendが出来ない?

    struct C_Commu { ----WSADATA wsadata; ----SOCKET Sock; ----sockaddr_in Addr; public: ----void Init(); ----void Send(); } というクラスがあったとします。 Init()ではソケットの生成だとかWinsockを使った通信で必要な設定を行っています。(TCPとする) void C_Commu::Send() { ----send( Sock, "hello", 5, 0 ); ----if(何らかの条件) ----{ --------send( Sock, "hello", 5, 0 ); ----} } このような関数の場合に、if文の外のsend()をコメントアウトしたりコメントにしたりして動作を確認してみたところ if文の外のsend()にはサーバーが反応するのですが、if文内のsend()はsend()が行われているのが確認されるのにもかかわらずサーバー側が一切反応しません。 ここでいう、サーバーが反応するとは、select()を用いてブロッキングが解除されてrecv()に処理が回れば反応した、recv()に処理が行かなければ反応していない、としています。 これはどうしてでしょうか?

  • if文の中ではwinsockのsendが出来ない?

    struct C_Commu { ----WSADATA wsadata; ----SOCKET Sock; ----sockaddr_in Addr; public: ----void Init(); ----void Send(); } というクラスがあったとします。 Init()ではソケットの生成だとかWinsockを使った通信で必要な設定を行っています。(TCPとする) void C_Commu::Send() { ----send( Sock, "hello", 5, 0 ); ----if(何らかの条件) ----{ --------send( Sock, "hello", 5, 0 ); ----} } このような関数の場合に、if文の外のsend()をコメントアウトしたりコメントにしたりして動作を確認してみたところ if文の外のsend()にはサーバーが反応するのですが、if文内のsend()はsend()が行われているのが確認されるのにもかかわらずサーバー側が一切反応しません。 ここでいう、サーバーが反応するとは、select()を用いてブロッキングが解除されてrecv()に処理が回れば反応した、recv()に処理が行かなければ反応していない、としています。 これはどうしてでしょうか?

  • if文の中ではwinsockのsendが出来ない?

    struct C_Commu { ----WSADATA wsadata; ----SOCKET Sock; ----sockaddr_in Addr; public: ----void Init(); ----void Send(); } というクラスがあったとします。 Init()ではソケットの生成だとかWinsockを使った通信で必要な設定を行っています。(TCPとする) void C_Commu::Send() { ----send( Sock, "hello", 5, 0 ); ----if(何らかの条件) ----{ --------send( Sock, "hello", 5, 0 ); ----} } このような関数の場合に、if文の外のsend()をコメントアウトしたりコメントにしたりして動作を確認してみたところ if文の外のsend()にはサーバーが反応するのですが、if文内のsend()はsend()が行われているのが確認されるのにもかかわらずサーバー側が一切反応しません。 ここでいう、サーバーが反応するとは、select()を用いてブロッキングが解除されてrecv()に処理が回れば反応した、recv()に処理が行かなければ反応していない、としています。 これはどうしてでしょうか?

  • if文の中ではwinsockのsendが出来ない?

    struct C_Commu { ----WSADATA wsadata; ----SOCKET Sock; ----sockaddr_in Addr; public: ----void Init(); ----void Send(); } というクラスがあったとします。 Init()ではソケットの生成だとかWinsockを使った通信で必要な設定を行っています。(TCPとする) void C_Commu::Send() { ----send( Sock, "hello", 5, 0 ); ----if(何らかの条件) ----{ --------send( Sock, "hello", 5, 0 ); ----} } このような関数の場合に、if文の外のsend()をコメントアウトしたりコメントにしたりして動作を確認してみたところ if文の外のsend()にはサーバーが反応するのですが、if文内のsend()はsend()が行われているのが確認されるのにもかかわらずサーバー側が一切反応しません。 ここでいう、サーバーが反応するとは、select()を用いてブロッキングが解除されてrecv()に処理が回れば反応した、recv()に処理が行かなければ反応していない、としています。 これはどうしてでしょうか?

  • VC++2010 TCPIP通信の受信処理について

    VC++2010 TCPIP通信の受信処理について質問させていただきました。 現在、VC++2010 MFCのダイアログ でアプリケーションを作成しています。 現在、TCPIP通信で、受信処理のプログラムの所になるんですが、 recv関数を使用してるんですが、この関数は相手側からメッセージが送信される・切断される の イベントが発生しないとrecv関数は終了しません。 ここで質問なんですが、この関数でタイムアウト時間を設けたいのですが どのようにしたら良いかわかりませんでしたので質問させていただきました。 よろしくお願いします。

  • C言語 関数問題

    西暦年yearを引数として受け取り,閏年かどうかの判定結果を戻り値として返す関数leap_year()を作成せよ. ただし,leap_year()は,閏年の場合は1を返し,そうでない場合は0を戻り値として返すものとする. 提出するプログラムは,関数leap_year()だけでなく,メイン関数main()も含む下記プログラムを完成させる形で作成する #include <stdio.h> /* ここに関数leap_year()のプロトタイプ宣言を記述する */ int main() { int i, year[3]; for (i=0; i<3; i++) { printf("西暦年を入力してください"); scanf("%d", &year[i]); if (leap_year(year[i]) == 1) { printf("閏年です.\n"); } else { printf("閏年ではありません.\n"); } } } /* ここに関数leap_year()を定義する */

  • C言語で質問します

    Sorting Three Numbers 3つの整数を読み込み、それらを値が小さい順に並べて出力するプログラムを作成して下さい。 Input 3つの整数が空白で区切られて与えられます。 Output 小さい順に並べ替えた3つの整数を1行に出力して下さい。整数の間に1つの空白を入れて下さい。 Sample Input 3 8 1 Sample Output 1 3 8 以上がAIZU ONLINE JUDGEというサイトの問題です。 自分が書いたソースプログラムは以下です: #include<stdio.h> int main(void){ int a,b,c; scanf("%d %d %d",&a,&b,&c); if(c>b&&b>a){ printf("%d %d %d",a,b,c); } if(b>c&&c>a){ printf("%d %d %d",a,c,b); } if(a>c&&c>b){ printf("%d %d %d",b,c,a); } if(c>a&&a>b){ printf("%d %d %d",b,a,c); } if(b>a&&a>c){ printf("%d %d %d",c,a,b); } if(a>b&&b>c){ printf("%d %d %d",c,b,a); } if(a==b&&b==c){ printf("%d %d %d",a,a,a); } if(a==b&&b>c){ printf("%d %d %d",c,a,a); } if(a==b&&c>b){ printf("%d %d %d",a,a,c); } if(a>c&&b==c){ printf("%d %d %d",b,b,a); } if(c>a&&b==c){ printf("%d %d %d",a,b,b); } return(0); } 自分のパソコン上でコンパイルして,いろいろ整数を入力してみて,全部大丈夫でしたが,なぜこのオンラインサイトでコンパイルするとエラーが出るでしょうか? よろしくお願いします

    • ベストアンサー
    • noname#237746
    • C・C++・C#
    • 回答数3
  • c言 ファイルのオープンについて

    #include <stdio.h> int main(void) { int ch; FILE *fp; char fname[64]; printf("ファイル名:"); scanf("%s",fname); if((fp=fopen(fname,"r"))==NULL) printf("ファイルをオープンできません。\n"); else{ while((ch=fgetc(fp))!=EOF) putchar(ch); fclose(fp); } return(0); } ファイル名は20130603.cで、実行ファイル(exe)と同じディレクトリに入れてあるのに、このプログラムでファイルをオープンできないのです。 このプログラムを実行するために必要なファイルの作成法と、例としてのファイルの内容、実行結果など、教えていただきたいのです。 色々調べてみたのですが、解決法がイマイチ見つかりませんでした。 どうかよろしくお願いします。

    • 締切済み
    • noname#225287
    • C・C++・C#
    • 回答数5
  • PreTranslateMessageで音がする

    VC++ MFCでダイアログのプログラムをつくってます。 エディットコントロールでEnterキーを押したら動作するプログラムをPreTranslateMessage(MSG* pMsg)関数でつくっているんですが、Enterキーを押すとPCからティン、ティン、と音がします。 この音をなくす方法はないでしょうか?

  • VC++2010 GDIオブジェクトの解放方法

    現在、VC++2010 MFCでアプリケーションを作成しています。 処理している内容は、ADボードから電圧値をもらい、それをエディットボックスに表示する処理ですが、タスクマネージャなどでみるとGDIオブジェクトが増加していき、9999になるとアプリケーションがフリーズしてしまいます。調べたところ、解放するプログラムが必要みたいですが、解放方法が分かりませんでしたので質問させていただきました。最初にエディットボックスのレイアウトを変更する処理をしています。 以下が今回のプログラムとなっております。 CFont* m_pFont;  CFont* m_pFont;m_pFont = new CFont; m_pFont->CreatePointFont(200,""); ((CEdit *)GetDlgItem(IDC_EDIT1))->SetFont(m_pFont); ((CEdit *)GetDlgItem(IDC_EDIT2))->SetFont(m_pFont); ((CEdit *)GetDlgItem(IDC_EDIT3))->SetFont(m_pFont); ((CEdit *)GetDlgItem(IDC_EDIT4))->SetFont(m_pFont); ((CEdit *)GetDlgItem(IDC_EDIT5))->SetFont(m_pFont); ((CEdit *)GetDlgItem(IDC_EDIT6))->SetFont(m_pFont); DeleteObject(m_pFont); SetTimer(1,1000,NULL); 以下が毎秒処理となっております。 void Power_Noise::OnTimer(UINT_PTR nIDEvent) { m_nRet = m_pADControl->AD_In_Out(m_AD1,m_AD2,m_AD3,m_AD4,m_AD5,m_AD6); if(m_nRet == FALSE){ MessageBox("失敗"); KillTimer(1); } UpdateData(TRUE); m_xvEditVolt[0] = m_AD1; m_xvEditVolt[1] = m_AD2; m_xvEditVolt[2] = m_AD3; m_xvEditVolt[3] = m_AD4; m_xvEditVolt[4] = m_AD5; m_xvEditVolt[5] = m_AD6; UpdateData(FALSE); }

  • 分かりやすいプログラム関数命名

    現在簡単な物理シミュレーションプログラムを組んでいるんですが 斜方投射の処理をさせる関数の分かりやすい命名が思いつきません。 あなたならどう命名しますか? ちなみにですが 等加速度運動をUniformMotion関数 自由落下運動をFreeFallMotion関数 としていますが、どうでしょうか?

  • プログラムのファイルの保存

    プログラミングについてです。 学校でC言語を学習している最中です。 パソコンはwindows7をつかっており、KNOPIXのCDがあります。 visualC++ で作成したプログラムのファイルをUSBに保存し、 シャットダウンした後にKNOPIXを起動させ、GNOME端末でそのプログラムを実行させることはできました。 しかし、KNOPIXにおいてemacsで作成しUSBに保存したプログラムを、visualC++ でデバックすることはできませんでした。 プログラムのファイルは開くことができたのですが、デバック開始をクリックすることができませんでした。 学校のコンピュータがLinuxであるため、プログラミングの課題を自分のパソコンでしてUSBに保存したあと、それを学校のコンピューターで開きたいと考えています。emacsよりもvisualC++のほうが取り組みやすいので、上のようにやってみました。 また、USBに保存せずに、プログラムファイルをDropboxに保存してもいいかなとも考えました。 KNOPIXにおいてemacsで作成しUSBに保存したプログラムを、visualC++ でデバックするにはどうすればいいですか。 初心者です。質問文にわかりにくいところがあるかもしれませんが、よろしくお願いします。

  • 指定の条件での0と1の組み合わせの作成

    0と1の組み合わせを指定の条件で作成するのにつまづいています。 (visual studio 2008 express C++) n桁の0と1の組み合わせを、 (A)1の数が少ないほうから大きいほうへ (B)1の位置が左から右へ (C)指定した数の組み合わせを作る というルールで作成するプログラムを作っています。 n=4桁で10の組み合わせをつくるとすると 0000  (1) 1000 (2) 0100 (3) 0010 (4) 0001 5) 1100 (6) 1010 (7) 1001 (8) 0110 (9) 0101 (10) という組み合わせをベクターのベクター もしくはstringのベクターという形でつくりたいのですがどうやればいいのかわからないでいます。 for ( int i = 0 ; i < 5; ++i){ } ループで 0 / 1 の 網羅的な組み合わせを作りはしましたが、そうすると (A) (B)の条件が満たせなくなってしまいます。 STL の next_permutation() はざっと見た限りでは今回のような条件を指定した組み合わせというのはできない(?)ようです。 解決法が分かる方がいらっしゃればなにか教えていただけたらありがたいです(できればコードも一緒に。。。) よろしくお願いします。