検索結果 27 件

by djann
3年前
フォーラム: C言語何でも質問掲示板
トピック: キーボードの操作を受け付けない
返信数: 3
閲覧数: 1579

Re: キーボードの操作を受け付けない

いくつかのサイトを調べたところ、下記のようにキーボードの状態の取得をキーの取得の前に記述するという方法を見つけ実践してみましたが、いずれもエラーが起きてしまいました。 上記以下に書かれたコード(g_pDIDevice->GetDeviceState(256,diKeyState);)のように、デバイスの状態を取得することは必須です。大抵はゲームループ中のどこかで一回取得し、入力情報が必要な場合はdiKeyStateを参照する、貴方が書いたHRESULT idou()関数のようになるでしょう。 今回のコードの問題点はいくつかあります。 1. g_pDIDeviceは果たして本当に初期化されてい...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: vectorの並び替え
返信数: 9
閲覧数: 1267

Re: vectorの並び替え

pairのsecondだけをソートがしたいです。 ですがsortの第三引数をどう書けばいいか分かりません。 ??? 第三引数の書き方は合っているんじゃないですかね? そのRanking_Name::sort_less構造体さんに定義で特別間違いはないと思いますよ。 (rank_pairをtypedefしているのになぜかここではstd::pair<string, double>であるとか、そもそもusing namespaceをヘッダに書かないようにとか、名前の付け方が一部だけどこかからパクってきたようなものであるとか、std::を付けているところと付けていないところがごっちゃであるとか、TC...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: intがあるのとないのでどう違う
返信数: 9
閲覧数: 886

Re: intがあるのとないのでどう違う

おっと、識別子がかぶっても問題ないんでしたっけ。
コード規約がいつの間にか言語規格とごっちゃになってしまったパターンですね反省します。
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: intがあるのとないのでどう違う
返信数: 9
閲覧数: 886

Re: intがあるのとないのでどう違う

#include <stdio.h> int main() { //a=生徒の数、m=100m走、sum=平均、k=記録、t=タイム、b=終了 int a[20], m=100, sum=0, k=0, t=0, b=0,i; for(int i=1; i<=20; i++) ですね。6行目?の最後で、既に識別子 i が宣言されており、7行目のint iの部分で多重定義となります。 また、環境が分からないのですが、もしC99以降をコンパイル出来る環境にない場合にC言語としてコンパイルされているのなら、事前に i が宣言されていなくともエラーとなります。 その際の理由としては、C99より前のバ...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: ネットワークの基礎の質問
返信数: 6
閲覧数: 1296

Re: ネットワークの基礎の質問

①例えばyahooサイトを表示した状態はyahooサイトと常に通信してる状態なのか、それとも  表示されたらもう一旦通信は遮断しているのか、どちらが正しいのでしょう? 基礎ということなので、基本的なHTTPプロトコル(RAS症候群な言い回しですね)に則ると考えれば、サイトを表示(というか必要なHTML文書、リソースのやり取りが終われば)通信を続けたりは致しません。 ②Webサーバに負荷がかかるのはサイトを見た瞬間なのか、見続けていると負荷がかかり続けるのか なので基礎的に言えば、こちらも同様に「負荷がかかるのは開く瞬間」という事になります。 なのでDOS攻撃等は更新を繰り返しサーバへ負荷を与...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: VC++とVC#のテキストファイルなどの参照の違いについて
返信数: 6
閲覧数: 846

Re: VC++とVC#のテキストファイルなどの参照の違いについて

実行プロセスには「作業ディレクトリ(カレントディレクトリ)」というものが存在します。相対パスをプログラム中に書いていた場合、その作業ディレクトリからの相対パスと認識されます。 実行ファイルを直接起動した場合等は、基本的にその実行ファイルが置いてある位置が作業ディレクトリとして実行されます。 VC++上から実行した場合には、基本的に「プロジェクトファイルが置いてあるディレクトリ」が作業ディレクトリとして設定されます。もちろんこれはプロジェクトの設定から変更することが可能です(プロジェクトのプロパティ -> 構成プロパティ -> デバッグ内に設定項目が存在します)。 VC#の場合は分かりませんが、...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 行列の積を戻り値として返す関数について
返信数: 8
閲覧数: 1400

Re: 行列の積を戻り値として返す関数について

関数ポインタの宣言とは書いてませんよ~。
func()関数の戻り値を受け取る部分、またreturnしようとしている部分を見て「ああ、配列のポインタを使用しようとしているのだな」と判断したまでです。

C言語はC++比べて型の認識が緩い故にコンパイルエラーにならない。なので、確かにこちらの認識ミスですね。そこは申し訳ありませんでした。
ただ「型としての整合性が取れていない」という部分には変わりないので、コンパイルエラーでなくても正しいコードではなく、また「とある環境で動いた」というのは全く無意味な情報かと。
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 助けてください
返信数: 8
閲覧数: 1291

Re: 助けてください

それ以上大きいものが必要な数だけ出せなくなった場合には,それが判明した時点でストップさせるようにすること。 なので単に30だけではいけない。 例えば 29, 30 Sorry! Impossible to print all. という表示はNGで、29の時点でSorry! Impossible to print allを出さなければならない。 なぜならば、前回より大きい値を最後まで出し続けなければならないからです。それが途中で不可能になった時点で中断出力を行うのが、キモですね。 ちなみにプログラムは全体を一気に考えるのではなく、いくつかに分けて段階を踏んで考えていくと良いと思います。今回で言...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 行列の積を戻り値として返す関数について
返信数: 8
閲覧数: 1400

Re: 行列の積を戻り値として返す関数について

正直、何をどうして「配列のポインタ」という魔境にたどり着いてしまったのかが疑問で仕方がないのですが・・・。 更に、このコードがコンパイルは通るというのが若干謎です。なぜならc(main()関数内の方もfunc()関数内の方も)とfunc()関数が戻す型が合っていないからです。コンパイルしている環境はなんでしょう?(私はVisual C++とClang++にて検証) さて、配列のポインタを使用するという形を持ったまま正しく実装を行うのであれば、以下のように変更すべきです。 1. func()関数内で宣言している double (*c)[ 3 ]という変数に、正しい配列のポインタを設定する。 2....
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: エラーの原因を知りたいです
返信数: 6
閲覧数: 777

Re: エラーの原因を知りたいです

そこにはwcs(格納先のバッファ)のサイズが入るらしいですよ? と書いてある通りですよ~。といってもワードサイズが入るということなので、実際のバッファサイズをwchar_tのサイズで割る必要がある、 というかnew wchar_t[ XXX ];と書いたXXXとそのまま同じになりますが。 「sizeof(wcs)」「MAX_PATH」にしてみましたが、同じエラーが出ました。 指摘した問題は何も変わっていないですし、実際問題どこで止まっているかは不明なので当然ですね。ちなみに sizeof(wcs)これはポインタのサイズとなり、つまりはWin32であれば大抵は4、x64であれば大抵は8になりま...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: エラーの原因を知りたいです
返信数: 6
閲覧数: 777

Re: エラーの原因を知りたいです

mbstowcs_s()関数の第三引数はなぜ固定の100という数字なのでしょう?
そこにはwcs(格納先のバッファ)のサイズが入るらしいですよ?
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: ポリゴンに対する内外
返信数: 3
閲覧数: 731

Re: ポリゴンに対する内外

// まず軸に沿ったXZ平面で中に入っているかを簡易的にチェック(軽量化処理) if ( (MapPoly.Polygons[ i ].MinPosition.x <= Pc.NextPosition.x && MapPoly.Polygons[ i ].MaxPosition.x >= Pc.NextPosition.x) && (MapPoly.Polygons[ i ].MinPosition.z <= Pc.NextPosition.z && MapPoly.Polygons[ i ].MaxPosition.z >= Pc.NextPosition.z) ){ // 1つの面を構成...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 開発環境をVC++2010からVS2015に変更したらエラーが発生しました
返信数: 2
閲覧数: 795

Re: 開発環境をVC++2010からVS2015に変更したらエラーが発生しました

そもそもofstreamのオブジェクトを0と比較するという考え方が間違っています。真偽値は真偽値であり、1や0とは概念が違います(実態は別として)。真偽値は出来るだけ、条件式に素のまま入れる使い方をしましょう。(正しいが正しいのなら~という条件・・・というか記述はおかしいですよね?) また、おすすめ以前に考え方を正しく持った使い方をすれば、今回の問題は解決します。 std::fstream fs; if ( fs == true ){} // 真偽値との比較だけどあまり良くない if ( fs ){} // こちらの方がよい if ( !fs ){} // 否定はこちらまたは if ( fs....
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリで非同期読み込みが終わらないことがあります。
返信数: 2
閲覧数: 749

Re: DXライブラリで非同期読み込みが終わらないことがあります。

多分非同期モードの挙動は 1. FileRead_xxxx()等で指令を与える 2. 与えた指令が終わっていればCheckHandleASyncLoad( handle )がFALSEを戻し、他の指令を与えられるようになる。 といった形かと思われます。 あなたの書いたコードでは毎フレーム指令を与え(24行目のFileRead_read())、その直後にチェックを行っていますので、ファイル読み込み用スレッドがよほど上手いタイミングで入ってこない限り「終わっていない」という認識になってしまうものだと思われます(Releaseビルドの方がその間の命令数が少い、速そうなので尚更運よく終了となりづらいか...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 文字コードについて
返信数: 2
閲覧数: 461

Re: 文字コードについて

文字コードという言葉が表している通り、chは文字型などと言われているが所詮「内部的に2進数で表現している整数」です。
なのでもちろん加減乗除が可能です。

コード:

// a ~ zまで、A ~ Zまでが連続していると仮定の上
// 以下の if 文は日本語にすれば「小文字かな?」となる.
if ( ch >= 'a' && ch <= 'z' ){
	// ch - 'a'で、大小関係なくどのアルファベットか?のような情報へ
	// + 'A'で大文字へ
	ch = ch - 'a' + 'A';
}
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談] フォーラムルールの変更(掲示板の基本方針変更)について
返信数: 23
閲覧数: 3905

Re: [雑談] フォーラムルールの変更(掲示板の基本方針変更)について

方針の話ではございませんが
daive さんが書きました:動的仮引数?について
http://dixq.net/forum/viewtopic.php?f=3&t=17231
ってどの辺がまずかったですかね?結論としてのコードをこちらに貼らず外部に投げた辺りでしょうか?
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 可変長の自作関数を作りたいがうまくできない…
返信数: 5
閲覧数: 1144

Re: 可変長の自作関数を作りたいがうまくできない…

基本的に可変長引数の扱いは以下のようになります。 #include <stdio.h> // 可変長引数を扱う為の型、関数、マクロ群. #include <stdarg.h> void variable( int num_args, ... ) { va_list args; // これを経由して引数を扱う. va_start( args, num_args ); // args(va_list型)に可変長引数の情報を引き渡す. int n = va_arg( args, int ); // args(va_list)と型を渡して引数を取り出す. int m = va_arg( args, i...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 動的仮引数?について
返信数: 10
閲覧数: 1607

Re: 動的仮引数?について

64bitでの作成だと、アセンブリ言語を用いるとしても手間がかかりそうですね。 基本的に引数はレジスタ渡しで、浮動小数点数と整数(ポインタ)は別のレジスタに設定する必要がありますし(いや、条件式一つ書くだけか・・・?) ツール自体がそういう文字列から関数を呼び出すというものなら仕方ないのですが、そうでなければcallfuncと同じ形に無理やりするより正常なC++へ書き換えた方が手間は少なそうです。 一応C++のみでMessageBoxAの呼び出しが確認出来るコードは書けます。 自作ライブラリを使用しているのでこちらに貼っても意味がないと思うので、そのライブラリの一部も含め以下に置いてます。 h...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 英単語を判定してlistに入れる
返信数: 3
閲覧数: 742

Re: 英単語を判定してlistに入れる

C++始めたばかりの初心者です。 どうも、初級者な私ですがよろしくお願いします。 私なりに作ってみましたが、未完成な上に間違いも多々あると思われます。 未完成とは、どの辺まで完成済みなのでしょうか? また、こちらに貼りつけられたコードはテスト、最低限コンパイルは行っておりますか? コンパイルすら通らないコードだと、回答者は「多分こうなのだろう。」と思って脳内で書き換えるか、いったん逆質問を投げかける等を行わなければならなくなります。 ちなみに今回貼りつけられたコードは、コンパイルが通りませんでした。 それとコードを貼りつける場合は特定のタグで囲っていただけると、見やすくそしてコピペもしやすく...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 動的仮引数?について
返信数: 10
閲覧数: 1607

Re: 動的仮引数?について

bass_clef_ さんが書きました:ここではソースで変数などを静的に記述してますが
もちろん モジュール名、関数名、引数の数,型,内容 などすべて実行時に動的にユーザーによって指定できます(C++ でいえば std::cin,scanf とかで)

とあるということは、他の情報源からモジュール名、関数名、引数の型リスト、そのパラメータ等をユーザから指定させるということですねかね?例えば文字列等で入力してもらったり、スクリプトの実行環境だったりして。
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 外部インスタンスへのアクセスについて
返信数: 8
閲覧数: 960

Re: 外部インスタンスへのアクセスについて

遊び心の探求をする質問だと受け取った・・・! #include <iostream> class Unit { public: void emplace(){ std::cout << "made" << std::endl; } }; // Unitのオブジェクト(ストレージ上に構築された実体)を持つ. // みんなこれから取り出して操作しましょうね. Unit &unit(){ static Unit u; return u; } void func() { Unit &u = unit(); u.emplace(); } int main() { func(); } 状態を持つ関数なんて...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 動的仮引数?について
返信数: 10
閲覧数: 1607

Re: 動的仮引数?について

>jdannさん ご回答いただいてありがとうございます。 惜しい、djannです! やはりコンパイルする言語なので動的に引数の型や数を変更するには字句解析とかするしかないのでしょうか…… 前述のサンプルではやりたい事が足りなかったということでしょうか?C++上で統一的に関数呼び出しを行う(個別にキャストする必要なく)のが想定仕様かと勘違いしていました。 どのような事が行いたいのか、今一度教えていただけませんか?行いたい「使い方」をソースコードの形で出し、想定される動作等を補足するような形であればより伝わりやすいかもしれません。 ※なお、既存のAPIに追加の引数を渡して呼び出したいといった事を...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: releaseでバッチリなのに、exeファイルではバグってる
返信数: 16
閲覧数: 1670

Re: releaseでバッチリなのに、exeファイルではバグってる

1. 先ほど記述したコードについて 先ほどのコードは 「その部分をいくら見ても正しく、書き換えていないのに『他の部分の変更によって』特定の機能がおかしくなることもある」 ということをを示す為の意図したソースコードですので、そこを取り違えないでください。 もちろん先ほどのコードは「問題を起こす」為に書かれており、メモリ破壊による他への影響を「見えるようにかなり単純化している」ので「常に発生」します。 これは考え方を示しているものなので、そのものズバりでないが故にケースが違うという認識は正しくないと思います。 ・メモリ破壊という言葉について メモリ破壊は自然に起きるものではなく貴方・・・とは限りま...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: releaseでバッチリなのに、exeファイルではバグってる
返信数: 16
閲覧数: 1670

Re: releaseでバッチリなのに、exeファイルではバグってる

ソースとはソースコードのことです。 かなり強引な例ですが次の二つのコードを参照してください。 #include <iostream> #include <setjmp.h> class barrier { bool m_available; public: barrier() : m_available( false ){} ~barrier(){} void set_available(){ this->m_available = true; } void is_available(){ if ( this->m_available ){ std::cout << "Available." ...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: 動的仮引数?について
返信数: 10
閲覧数: 1607

Re: 動的仮引数?について

C++11を学び始めているということなので、そちらの機能を利用しつつ回答します。 例えどんなに動的にしたいと思っていても、自身でコードに落とした以上それはコンパイル時に確定出来る情報となりますので、故にコード中で一見動的な引数を与えるファンクションコールは可能と言えば可能です。 例えば以下のコードのような手法となります。お試しください。 #include <Windows.h> class library_caller { HMODULE m_module; // モジュールの保持. public: // コンストラクタにてモジュールを読み込む. library_caller( char co...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: ゲームのネットワークでの同期について
返信数: 9
閲覧数: 847

Re: ゲームのネットワークでの同期について

char*またはstd::stringを送信しているとのことですが、char*で送信する際にその文字列長等を設定しておりますか? していない場合、多分null characterを終端として認識して送信を行っていると思われますので、構造体をキャストしたところでその内容に0x00が含まれた時点で送信が止まってしまいそうですね。 と、少し調べましたがなるほどC++のstream風な送信を行う機構があるのですね。これをそのまま使用しているのだとしたら、バイナリデータをそのまま送信というのは厳しそうです。 一旦、現在送信を行っている部分等の短いコードを貼ってみてはいかがでしょうか? 追記 iostre...
by djann
4年前
フォーラム: C言語何でも質問掲示板
トピック: releaseでバッチリなのに、exeファイルではバグってる
返信数: 16
閲覧数: 1670

Re: releaseでバッチリなのに、exeファイルではバグってる

>メモリが破壊されているとした場合、 >悪いのはvisualstudioなんでしょうか? No >visualstudioをインストールしなおして >今回のプロジェクトのゲームをreleaseしなおせば直りますか? No >それとも、悪いのはプロジェクトなんでしょうか? >新しくプロジェクトをつくり直して、 >今回のゲームのソースをすべてペーストしてまた構築しなおせば直りますか? No メモリが破壊されている場合、悪いのは「今回のゲームのソース」です。故にソースをコピペした時点で同様に問題が発生するでしょう。 ここで言われているのは、デバッガ経由(Visual Studio上から)での起動を行...

詳細検索ページへ移動する