vipasigaru の回答履歴

全68件中21~40件表示
  • C++について

    C++について C++を学ぼうと思って入門書を探しています。 今までにC++、オブジェクト指向はやったことがありません。 C言語は初級と中級の間ぐらいの知識です。現在は独習Cを読んで、理解を深めています。 VC++を理解したいと思って業務(ツール)のソースや構成などを見てもさっぱりでした。 どこから学んでいけばよく分からない状態です。 オブジェクト指向を理解しつつ、C++も習得していってVC++を使えるようになりたいです。 Visual C++〈1〉はじめてのWindowsプログラミング (プログラミング学習シリーズ) が良いと聞いたのですが、C言語を分かっている程度の私が読んで勉強になりますか? もし、他に取っ掛かりやすい本がありましたらお願い致します。

  • VC++で文字列から任意の文字を削除するにはどうしたらいいですか?

    VC++で文字列から任意の文字を削除するにはどうしたらいいですか? タイトルのとおりです。 VC++にてあるソフトのプロファイルを作成したいのですが、 [Profile] Type = Default となっており、Defaultという部分だけとりたいのです。 ちなみにDefault以外にもGuestやAdminなどもありますので、Type = まで取り出したいのです。 どうしたらいいんでしょうか? よろしくお願いします。

    • aduken
    • 回答数3
  • テンプレート関数でコンパイルが通りません

    テンプレート関数でコンパイルが通りません いつもお世話になってます。テンプレート関数XXXで、引数のTYPE型によって、XXX内で呼び出す関数が変わります。以下の例では、eTypeがAならSetADataを呼び、eTypeがBならSetBDataを呼び出します。XXXのもうひとつの引数がテンプレート部です。本当は、rInfoの型(AInfoまたはBInfo)を判別できればeTypeは不要なのですが、判別の仕方がわからないので、eTypeでrInfoの型を伝えるようにしています。 template<typename T> int XXX( T& rInfo, const TYPE& eType ) if( eType == A ){   SetAData( rInfo ); else if( eType == B ){   SetBData( rInfo ); } // 明示的インスタンス生成 template int XXX<AInfo>( AInfo& rInfo, const TYPE& eType ) template int XXX<BInfo>( Binfo& rInfo, const TYPE& eType ) 上記のようにした時、コンパイラはTの部分をAInfoとBInfoの両方で解釈するので、どうしても以下のようなコンパイルエラーが出ます。 --- `int XXX(T&, const TYPE&) [with T = AInfo]': error: no matching function for call to `SetBData(AInfo&)' note: candidates are: int SetBData(BInfo&) `int XXX(T&, const TYPE&) [with T = BInfo]': error: no matching function for call to `SetAData(BInfo&)' note: candidates are: int SetAData(AInfo&) XXXをテンプレート関数でなく、明示的にAInfoとBInfoのオーバーロードにする手もあるかもしれませんが、XXXの中で、ここには載せていない大多数の部分は、まったく同じなので、テンプレート関数にするのが筋かなと思っています。このコンパイルが通るようにするには、どうすれはよいのでしょうか。

    • aneja
    • 回答数4
  • テンプレート関数でコンパイルが通りません

    テンプレート関数でコンパイルが通りません いつもお世話になってます。テンプレート関数XXXで、引数のTYPE型によって、XXX内で呼び出す関数が変わります。以下の例では、eTypeがAならSetADataを呼び、eTypeがBならSetBDataを呼び出します。XXXのもうひとつの引数がテンプレート部です。本当は、rInfoの型(AInfoまたはBInfo)を判別できればeTypeは不要なのですが、判別の仕方がわからないので、eTypeでrInfoの型を伝えるようにしています。 template<typename T> int XXX( T& rInfo, const TYPE& eType ) if( eType == A ){   SetAData( rInfo ); else if( eType == B ){   SetBData( rInfo ); } // 明示的インスタンス生成 template int XXX<AInfo>( AInfo& rInfo, const TYPE& eType ) template int XXX<BInfo>( Binfo& rInfo, const TYPE& eType ) 上記のようにした時、コンパイラはTの部分をAInfoとBInfoの両方で解釈するので、どうしても以下のようなコンパイルエラーが出ます。 --- `int XXX(T&, const TYPE&) [with T = AInfo]': error: no matching function for call to `SetBData(AInfo&)' note: candidates are: int SetBData(BInfo&) `int XXX(T&, const TYPE&) [with T = BInfo]': error: no matching function for call to `SetAData(BInfo&)' note: candidates are: int SetAData(AInfo&) XXXをテンプレート関数でなく、明示的にAInfoとBInfoのオーバーロードにする手もあるかもしれませんが、XXXの中で、ここには載せていない大多数の部分は、まったく同じなので、テンプレート関数にするのが筋かなと思っています。このコンパイルが通るようにするには、どうすれはよいのでしょうか。

    • aneja
    • 回答数4
  • Console.ReadLine()で、入力デフォルト値を指定できます

    Console.ReadLine()で、入力デフォルト値を指定できますか? C#でプログラムをつくっています。 Console.ReadLine()を使えば、コマンドプロンプト上からのキー入力を文字列として受け取れますが、最初は空の状態です。 例えば、 string s = Console.ReadLine() を実行し、Enterキーを押すと、sは何も入力されませんが、デフォルト値を指定することで、ユーザーがただEnterキーを押したときに、デフォルト値を返すような方法はありますか? また、指定したデフォルト値を画面上に表示し、ユーザーが編集できるような方法はありますでしょうか? どうぞよろしくお願いします。

    • noname#136120
    • 回答数5
  • 入力した画像に最も近い画像を持ってくるプログラムについて。

    入力した画像に最も近い画像を持ってくるプログラムについて。 入力した画像に最も近い画像を持って来るプログラムを開発して、その速度の改善を行うといったことを行いたいのですが、画像処理方面に関して初心者で、やり方がよくわかりません。どなたか、画像の比較プログラムが紹介されているサイトや、サンプルプログラムがあるページをしってるかたがいましたら是非教えてくださいますようお願いします。 言語はC,C++,C#などでお願い致します。

  • C言語を用いたファイルの一括削除について

    C言語を用いたファイルの一括削除について 自分は、C言語でファイルの操作するプログラムを作成しているのですが、 たとえば、 out/temp1.jpg out/temp2.jpg out/temp3.jpg ここで、"out/temp"という文字列が一致するファイルを一括で削除したいのですが、 これはどういった関数を用いれば実現できるでしょうか? どうかよろしくお願いします。

  • 手軽に使える物理ライブラリを探しています

    手軽に使える物理ライブラリを探しています 初めまして、最近ゲーム開発を始めた者です。 内容は3DゲームでFPSのようなものを作っています。 物体に弾を当てて動く(転がったり)ようなものを作ろうとして、物理ライブラリ を探しているのですが、どれもこれも難しいものばかりで困っています。 試してみたのは、ODE・PhysX・bulletです。 上記以外で手軽に使えるライブラリはありますでしょうか? よろしくお願い致します。

    • raizun
    • 回答数1
  • 自分の組んだプログラムと対戦させられるオセロ/リバーシはないでしょうか

    自分の組んだプログラムと対戦させられるオセロ/リバーシはないでしょうか? 現在、オセロのプログラムを書いているのですが、そのプログラムを戦わせる相手が居なくて困っています。 対戦結果を使って自作AIを成長させたいので、そこそこ強いリバーシのAIと、自分の組んだAIを対戦させる必要があるのですが、なかなかプログラム同士を対戦させる事のできるリバーシプログラムが見つかりません。 LAN経由対戦でも良いので、どこかに無いでしょうか?

    • Fllisy
    • 回答数2
  • 【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい

    【VS2008 C++】2つのプロジェクト間で共通の関数を使いたい WindowsXP上で visual studio 2008 C++ express editionを 使用しています。 1つのソリューションに2つのプロジェクトをつくり、 その2つに共通の関数を使用させたいのですが、どのように 設定すればよいか教えて頂けませんでしょうか。 ソースの内容は以下のとおりです。 具体的には、mainB.cppでcommon.cppの関数を 呼び出したいです。 //common.cpp #include <stdio.h> void showCommon(){ printf("---common-----\n"); } //common.h #include<stdio.h> void showCommon(); //mainA.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainA-----\n"); showCommon(); } //mainB.cpp #include<stdio.h> #include "common.h" void main(){ printf("---mainB-----\n"); showCommon(); }

  • C言語のソースを書く際使いやすい・・・

    C言語のソースを書く際使いやすいテキストエディタはないですか? メモ帳では横に行番号がないのでデバッグの作業が大変です。 なのでいいテキストエディタを教えてください、お願いします・

  • 構造体にたいして、ビット演算はできるのか

    struct test {   int i[2]; }; struct test t; と、定義した構造体に対して、 t <<= 8; t = ~t; などの様にまるごとビット演算を行うことはできますか。

  • ホワイトボックステストの条件網羅について

    ホワイトボックステストの条件網羅について質問です。 (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のとき この二つのパターンがあるということでいいでしょうか? この理解があっているかご確認いただきたく。 よろしくお願いいたします。

    • noname#142813
    • 回答数2
  • C++のプログラミング(画像処理)

    VisualC++を使ってJPEG画像をデスクトップなどから読み込み、何か加工して出力するというプログラムを作ろうとしています。 JPEG画像を読み込んで、出力するだけのプログラムをまず作りたいのですが、アドバイスいただけないでしょうか。 今まで使っていたのがJAVAであったためC言語の事があまりよくわかりません。できるだけ簡単な方法があればお願いします。

  • コーディング

    キーボードから0以上100以下の整数データを10個入力したとき、40未満の数値の個数を表示するプログラムをつくりなさい。ただし、データが0以上100以下であるかどうかの判断はしなくてもよい。  宜しくお願いします。

    • bob2312
    • 回答数4
  • 構造体のメンバへアクセス

    VC++(VS2008)の勉強中です。 構造体のメンバへアクセスするとき、例えば  stInfo.val=100 ; というように「.」で指定する場合と、  int i = stInfo->val ; というように「->」で指定する場合がありますが、この使い分けは どういうことになっているのでしょうか? (適当に指定するとビルドエラーになります。)

    • zbatno1
    • 回答数3
  • 【C++】同じインスタンスの同じメンバにアクセスしているハズなのに、取得した値が異なる

    C++Builder6.0を使った画面アプリです。1つのexeとしてビルドしています。 メンバ変数へのアクセス firstFormインスタンスのメンバ stNode.count を 次の2箇所からアクセスしています。 (正確にはfirstFormが持つ、stNode構造体メンバのcountにアクセス) (1)firstFormのメンバ関数から読み取る (2)firstFormから呼び出されるsecondFormのメンバ関数から読み取る なぜか(1)と(2)で読み取った値が異なります。 しかし値が変わるような処理はしていません。 firstForm, secondForm はそれぞれ、TFromから派生したクラスです。 -------------------------------------------------------------------- 1回目のアクセス。期待する値を取得できた。 this ( TForm から派生する firstFormのインスタンスのメンバ関数からのアクセス )の値 :01682E0C nnum = this->stNode.count; 004037C1 8B4508 mov eax,[ebp+0x08] //多分、thisポインタをeaxに格納 004037C4 8B90DC030000 mov edx,[eax+0x000003dc] //thisポインタのメンバである stNode.nodesuの中身をedxに格納 004037CA 899578FFFFFF mov [ebp-0x00000088],edx //edxの中身をローカル変数nnumに格納 EAX 01682E0C EDX 0000022D EBP 0012F8F0 -------------------------------------------------------------------- 2回目のアクセス。( TForm から派生する secondFormのインスタンスのメンバ関数からのアクセス ) secondForm のポインタはthisと同じである :01682E0C nnum = secondForm->stNode.count; 004072B7 8B0D409B4900 mov ecx,[__ectbl__ __LateVCLInit + 0x2C] 004072BD 8B01 mov eax,[ecx] 004072BF 8B90D0030000 mov edx,[eax+0x000003d0] 004072C5 895580 mov [ebp-0x80],edx ECX 0049A5EC EAX 01682E0C EDX 0177F280 ---------------------------------------------------------------------- どちらの場合もEAXにfirstFormへのポインタが格納されているようです。 なのに、メンバへのオフセット?が 1回目は 0x03dc , 2回目は 0x03d0 となり12バイトずれて います。(オフセットがやたら大きい気はします。) メモリの中身をデバッガで確認すると、確かに12バイトずれたところに欲しい値があります。 ソースコードを眺めてもさっぱりわかりません。 何を調べれば良いのかさっぱり分かりません。 解決できる気がしないのですが、いろいろ考えるのも勉強になると思うので 「こういう可能性もあるのでは?」「これを調べたら?」といったアドバイスなど頂けたら助かります。 #不可解な事象というのは往々にして、全然関係ない初歩的なことに原因があるものですが・・・今回もそうなんだろうか。

    • hogejo
    • 回答数3
  • Win32APIで入力した数値を反映させたアプリケーションを動かすにはどうすればよいでしょうか?

    C++をはじめたばかりなのですが、waveout関数に興味を持ち、今現在勉強中です。 http://www13.plala.or.jp/kymats/study/MULTIMEDIA/waveOut_stereo_16.cppに載っているサンプルをhttp://oshiete1.goo.ne.jp/qa5223409.htmlで頂いたアドバイスを参考にして、「CPad for Borland C++ Compiler」でも警告なしでコンパイルできるようにしました。 サンプルでは、 >#define F 400 //周波数(1秒間の波形数) で周波数が設定されてあります。 これを、ユーザがキーボードで数値を入力して自由に周波数を設定できるように変更しようと思いました。 コマンドプロンプトで数値を入力するのではなく、新しくウィンドウを開いて、数値を入力するためのボックスを開きたいと思います。 ですが、これをC++とWin32APIで実行するための専用の関数が見当たりません。 たとえば、『C/C++によるWin32API -APIサンプル集(http://homepage1.nifty.com/MADIA/vc/api/)』にあるサンプルプログラムを拝見させていただいたのですが、発見することができませんでした。予め設定された選択肢から選択するメニューについては紹介されていたのですが、入力フォームを作る方法については紹介されていなかったように思えます。 Win32APIで数値を入力して >#define F 400 の「400」の部分を変えるためには、どのようにすればよいでしょうか?

  • dllファイルの作成手順

    今回初めてVisualStudio C++ にて作業しています。 初歩的な事を聞いてしまっているかもしれませんが、宜しくお願いします。 【環境】 WinXP SP3,VisualStudio2008 【目的】 InstallShield2009にて、カスタムアクションであるプロセスが 起動されているか否か(ロックファイル有無)の判定をしたいのです。 InstallShieldのサポートより指南頂いた回答は、 PSAPI.dll に含まれる PSAPI ライブラリを使用する方法でした。 【行った操作】 http://support.microsoft.com/kb/175030/ja http://www.networld.co.jp/is/pdf/tips/tips5.pdf まずは新アクションの追加を試みようと、下段リンク先にあります 手順に従いC++テンプレートでのCustomActionの作成をしました。 VisualStudio2008を起動し、 新しいプロジェクト>Visual C++>空のプロジェクト と選択。 C:\CustomActionにプロジェクト「CustomAction」を新規作成。 プロジェクト(P)>CustomActionのプロパティ>Release>リンカ 「$(OutDir)\$(ProjectName).exe」を 「$(OutDir)\$(ProjectName).dll」に書き換える。 ソースファイルからCustomAction.cppとCustomAction.defを新規作成。 CustomAction.cppとCustomAction.defは、 リンク先URLのサンプルコードと同じものです。 ビルドによってできたdllを用いて、URL先資料2/5ページ以降の 手順書通りにmslを作成するも、出来上がったmsiは 実行後即、異常終了するものでした。 何処かに手順ミスがあるのは間違いないのですが、 InstallShieldの操作の方は何度も見直していますので ミスがあるとしたらdllの作成で何処か間違えがあるのではと思い、質問いたします。 InstallShieldと言う、公になっているノウハウの少ないツールがらみではありますが、宜しくお願いします。

  • ショックです・・

    こんばんは。私には職場でずっと気になる人がいました。 その人に丁度1年前に気持ちを伝えたところ「彼女がいる」と言われ、振られてしまいました。でも「友達として付き合っていきたい」「これまでどおりに気軽にやっていこう」という彼の言葉に、考えた末OKしました。(いま思えばこのときにきっぱり諦めてケジメつけていたら良かったと思います) この1年間たくさんメールしたり、電話で(同じソフトバンクなので)たくさん話したり。 でも彼女がいるという事実を意識しながらも、たまにお茶したり会うことはありました。彼は私に気遣って彼女の話を私にはしませんでした。が、最近あることから彼の彼女のブログの存在を知ってしまいました。そこに書かれている内容に彼がどんなに彼女を大切にしているのか、デートの詳細。。ツーショットの写真。。 私は振られたんだから・・友達って言われたんだからって理解していても、ショックを受けました。また私に「友達と行ってきた」と言ってたのはすべて彼女とのデートだったことも。 何も手につきません。私はまだ彼が好きだから。 バカな質問でごめんなさい。私はどう気持ちを整理したらいいんでしょう?

    • noname#82069
    • 回答数5