遅れてしまい申し訳ありません。ご返信ありがとうございます。今回の場合、いくつかの手段があると思われます。今回はsocket通信で試してみたいと思います。有用な情報ありがとうございました。毎度C言語とは離れた質問で申し訳ないです。ブラウザと自分のソフト間でデータのやり取りを行おうと思ったのですが、方法がいまいち思いつきません。ブラウザは埋め込みとかではなく、事前に用意したファイルをブラウザとして開いた際に、ローカルで動くソフトとデータをやり取りし、取得したデータを随時描画するイメージです。localhostとしてソフトとTCP接続する方法が今のところ思いついた案なのですが、実際これが動くのか、またベストな方法なのか分からないため質問させていただきました。返事遅くなり申し訳ありません。ご返信ありがとうございます。私の求めていたものが気持ちよく見つかった気がします。年も明けましたので今年は教えていただいた物に挑戦したいと思います。お二方ありがとうございました。3769UIに特化したソフトの作成方法C言語とは関係ない質問になります。最近、見た目に特化したソフトを作成してみたいなと思うようになりました。どのようにUIをキレイに作るのか分からずにいます。個人的にはブラウザを埋め込みHTMLで画面構成することくらいしか思いつきません。プログレスバーの動きもアニメーションですし、ちらつくこともありません。Adobeのソフトではメッセージボックスや各コントロールもオリジナルになっています。辛辣かもしれませんが、問題や動作以前にC言語の基本を理解する必要があるのではないでしょうか。1.24行目「;」がありません。2.25行目、「n++;」の「;」は必要ありません。3.28行目、elseの「{」が閉じられていません。4.30行目、whileの「(」が閉じられていません。次は動作に関することです。1.25行目、入力してもらったnをなぜanswerまでループカウントさせるのでしょうか。2.26行目、条件式「>=」ではanswerも含みます。3.28行目、上記を修正後、elseではanswerも含みます。LIMIT」は問題に反しています。Studio、C#で電卓を作りたい。Studio、C#で電卓を作りたい。4」と一回目に計算したとき、txtDisplayに値は結果である「4」が入ります。この時値1には結果である4が入っています。次に2回目の計算が実行されるとき、この値1に対し、値2、つまり今txtDisplayに表示されている「4」が足され、結果が8になります。同じ値同士で計算されているのです。18」から=を押すと、0になります。ありますが掛け算割り算は0にはならないかと思います。これもしかしてc++ですよね?ぼくが扱っているプログラミングCなんですよ、、、C言語ですよ。表示形式がC++なだけです。64bit)実際にこちらの方でも試してみたところ確かに文字化けが発生しました。試しましたがやはりダメでした。ありますが、ネットに繋がっていなくともMinGWは使用できるかと思います。64bit)こんにちは。gccややこしいですよね。LC_CTYPE=C-EUCJPになるかと思います。Cygwin版はインストールドライブ以外のドライブでもちゃんと日本語になるんですけどね。言われてみればMinGWもドライブの違いは関係なかったです...。ご返信ありがとうございました。gccのlocaleパスについてご返信ありがとうございます。残念ながらMSYS_HOMEでも変わりはありませんでした。7のように、同様な疑問を持った方とそれの答えが既に出ていました。具体的に説明されていまして、解決策の一つである、もう自前でフォルダ作ってしまうという方法を応急処置としました。納得いかないのが本音です...。gccのlocaleパスについてご返信ありがとうございます。MINGW_HOMEを設定してみましたが、残念ながら効果がありませんでした...。してMinGW側のバグではないかと疑い始めています。プログラミングの課題について「5回記録する」と書いてありますが、コードは「5回読み込む」になっています。同じデータが5回表示されて当たり前です。最初にファイルを作る必要はありません。get_dataで「初めてですね」が表示されないですし、put_dataで書き込みする際にファイルが作られますから意味のないものです。コードのmain関数を以下のように変えてください。MinGWのgccを日本語化することができました。環境変数が(ドライブ名):\MinGW\...以外のパス名だとコンパイルは通るのにshareフォルダのlocaleが読み込まれないのか、日本語にならなくなってしまいました。これについて自分だけの環境であるか確認したいため、もしよろしければ確認のお願いと、同じ症状が出るならどう対処すべきか教えていただきたいです。1.MinGWのデータが「C:\MinGW\bin」にあるなら実行時に日本語になる。MinGWをインストール時にmingw32-gccのlangクラスをインストールすることでshareフォルダにlocaleが追加され、無事jaが入り日本語の表示に成功しました。インストール時に膨大なファイルな上、Classの名前しか違いがなかったので相当迷ってしまいました。LANG=ja_JPだけで表示されました。ウチはCygwinでパッケージ配布されているMingw64のものを使っているのですが、LANG=ja_JP.UTF-8だけで日本語に切り替わってます。確かにCygwinから行うと日本語になりました...。MinGWは相変わらず英語のままです。Cygwinでポータブル版を作ろうかと思ったのですが、MinGWより倍近い容量がありますので躊躇してしまいます。(gccを再配布するためです)最善の方法はありますでしょうか。DXライブラリのデバッグDrawCircle等は描写のグラフィックハンドルを取得するものではありません。GetGraphSize等でそのハンドルを使用しても無効だと思います。それで強制終了するかは確認していないため分かりません。gccのエラー日本語化ご返信ありがとうございます。ネット環境が無いため携帯からの返信です。main.cのように起動してみました。(実際はパスなど変更してます)しかしわざとエラーを起こしてみたりしましたが英語のままでした...日本語化の要求レベルは、以前投稿の日本語化のリンク先のような比較的出やすいエラーを日本語化出来たらいいなといった感じです。gccのエラー日本語化MinGWのgccのエラー文等を日本語化したいのですが、何か方法はありますでしょうか。検索すると、ファイルに日本語が含まれている場合の対処法だったり、日本語化プロジェクトがありますが更新が無かったりと図星のものが見つからず困っています。Version4メッセージの日本語化を参考に、MinGWのgccをmsysでmakeしてできるのではないかと睨んでいます。どのMinGWファイルをどういう手順でmakeしていくかと、そもそも出来るのかさえ分からず手が出ておりません。値渡しと参照渡しの違いおおざっぱに言うと、値渡しはコピーを、参照渡しはデータが入っている住所(アドレス)を渡しているからです。コピーをいくら変更してもコピー元は影響しません。これが値を交換しても影響しない理由です。参照渡しはアドレスを渡されて、その中身を変えるわけですから値交換が可能になります。怒られそうな説明ですが分かりやすく言うとこんな感じでしょうか。[Win32]IOCTL_STORAGE_MEDIA_REMOVALが正しく動作しないWin10、C言語で試してみました。同じように、SwitchEjectMechanicsでロックし、カウントダウンと同時にイジェクトボタンを離しつつDVD内に対してPathIsDirectoryとfopenをやってみました。何回やっても両方とも成功しました。いう宣言は正しくないように思います。nが初期化されていませんし、そもそも変数でサイズを指定できたかどうか...。gdbの出力読み取りについて自己解決しました。GDBのオプションに註釈レベルというのがあるそうで、このレベルを上げることでプログラムから判断しやすい出力にしてくれるようになりました。gdbの出力読み取りについて現在、gcc(MinGW)とgdbを使ってC言語エディタを作っています。内部でgccコンパイラを動かしてgdbでデバッグを行っています。Studioはgcc対応しているのですね。2015であって自作のエディタがgcc/gdbです。書き方というか説明が下手ですみません。VSでVBを使って、C言語エディタを作成しています。1000gdbの出力読み取りについて現在、gcc(MinGW)とgdbを使ってC言語エディタを作っています。内部でgccコンパイラを動かしてgdbでデバッグを行っています。ここで、gdbの出力してくる情報の識別方法に悩んでいます。いうのも出力してくる情報に識別子のようなものが無いため何の情報か間接的に判断するしかありません。(gdb)[STEPIN]みたいな文があったらいいのですが...何か識別する方法がありましたら教えてほしいです。関数リファレンスページは御覧になられましたか?各関数の使い方が詳しく書いてあります。画像の大きさを変えるにはDrawGraphとは違い、DrawExtendGraphやDrawModiGraphなどを使用するとよいと思います。LoadGraphは初期化時に一度だけ呼び出します。毎フレーム呼び出すと都度メモリに読み込むためそのうちメモリが足らなくなるか落ちます。ファイル入力しそこからファイルに入ってる英数字をカウントしたいのですが、わかりません!!ソースはコードタグで囲みましょう。ファイル入力しそこからファイルに入ってる英数字をカウントしたいのですが、わかりません!!ファイルの文字を一文字ずつ解析し、もしその文字が特定の文字だった場合カウントを+1していく、という方法で可能だと思います。ファイルの文字だけループさせ、ifで判定をする、ということをプログラムに起こしてみてはいかがでしょう。間違ったプログラムでも載せていただければ、それなりにアドバイスが来るかと思います。"あいうえお");このように%sの数に対して引数の数が合っていない場合、処理が遅くなる場合があります。r,g,bで読み込んだ値って実は、順番が逆なんでしょうか?よく見たらその可能性がありますね。こちらが分かりやすいかと思います。WinAPIのエディトコントロールについて半角英数字のみの入力方法は、エディットのメッセージ処理を行うことで可能です。n[t];ここのnumはint型です。0.xxxの値を代入すると0になります。num;では0を代入することになります。numをdouble型にしてみてはいかがでしょう。思ったら同じトピックがありましたね。DXライブラリが実行できません。DXライブラリが実行できません。DxLibの実行ログを見せてください。DirectX9移行のインストール、およびDirectX7以降に対応したグラフィックスデバイスかどうかなど条件を満たしているか確認してください。リリース設定が間違っている可能性があります。使用した場合のDXライブラリの使い方こちらを参考にプロジェクトの設定を行ってください。ダブルバッファについてスレッドから呼び出されたInvalidateRectのhWndには何も値が入っていません。各メッセージをウィンドウプロシージャへ送信します。とあるように、すべての領域を再描画させるため画面がちらつきます。60FPSを出すためにスレッドは使わずにPeekMessageを使います。ウィンドウメッセージを処理する部分を以下のようにします。DrawStringToHandleでの全角文字の表示についておそらくDX_FONTTYPE_ANTIALIASINGでアンチエイリアスを有効にしていて、かつ描画回数が多すぎるのが原因だと思います。別の変数に代入して速度が速く感じたのは、strAtcNameとstrSelectModeの描画とひらがなの描画で違うフォントハンドル(Font[2]と[3])を使用していたため(フォントの中身が同じなのに遅くなるのは不明)だと思います。解決方法としては一文字ずつ描画するのではなく、できるだけまとめて表示するか、描画回数が多い場所のフォントをアンチエイリアスのないものにすること、または画像にしてしまうかです。DrawStringToHandleでの全角文字の表示についてフォントをメイリオにしてみましたがfpsが下がることはありませんでした。別の変数に代入すると正常に動くとのことですが、コードに問題があったのかDxLib側の問題だったのかは分かりません。よろしければ、主にフォントを作成した部分とフォントデータを代入してみたところのコードを載せていただけますでしょうか?もし特に問題が無いのに不具合が起きた場合、DxLibの掲示板で聞くのも一つの手です。ファイル入出力とデータ処理とてもこちら側で15万点ものデータを用意できませんので自分で確認してもらうのが一番実用的な方法です。開発環境は何でしょうか?デバッグ機能がついたコンパイラで実行してみてください。studioは高機能かつ無料で使用できます。配列の要素数が大きすぎてスタックオーバーフローを起こしています。main(void)の外に出して静的領域に移動させるか、mallocなどで動的にメモリ確保を行ってください。DrawStringToHandleでの全角文字の表示についてフォント名を教えていただきましたら再度動かしてみますのでよろしければお願いします。GraphBlend関数を使いたいのですが・・・。GraphBlend関数を使いたいのですが・・・。#DX_NON_FILTERを定義していませんか?DxLibフォルダにあるDxCompileConfig.hの設定でフィルター関連の使用を禁止していませんか?もしそれでも直らないのであればDxLibを再ダウンロードしてみてはいかがでしょう。DrawStringToHandleでの全角文字の表示について簡単にですが実際に動かしてみました。fpsが極端に下がることはありませんでした。動かすために少々変更したところは、フォントはデフォルトになったことと、strSelectMode[][5]の添字とchKana1ToName[][3]の添字をそれぞれ+2ほどしました。音声が正常に再生されないDxLibはogg形式が動作保証されていたと思います。oggでは再生できるでしょうか。メモリ使用量がどんどん増えますおそらくdeleteしてもDxLibで読み込んだ画像はメモリに残っていると思いますのでDeleteGraphを呼んであげるようにすればよいと思います。ソースコードはcodeタグで囲みましょう。課題なのですが分かりません。課題なのですが分かりません。0;}printf系の関数でdouble型の値を出力するには%lfではなく%f(または%gなど)を用いるべきであると言われています。課題なのですが分かりません。課題なのですが分かりません。課題を出されるということはそれなりに学習する時間があったということでしょうか。明日提出でprintfを使うことしかわからないとなればかなり致命的ですね。後日必ず勉強をしてください。質問丸投げですが期限が明日なのでフォーラムルールに則り解答を書きました。fstreamで読み取るなら空白文字で区切る必要があります。eofはアクセスした際にフラグがセットされるので読み取り操作後でなければいけません。break;と書くとeofとfailのどちらか一方でも真になればbreakします。区別する必要がなければこちらの書き方をお勧めします。勉強になりました...先程の自分の回答はスルーされて結構です。sqlite3をDxLibのプログラムに組み込めないC++のファイル系統は触ったことなかったので少し勉強してきました。55行目のファイルの終わりを確認する部分はfail関数で確認するべきだと思います。>>演算子で読み込む場合はfail関数で失敗したかが分かるそうです。どちらにせよeofで確認するのであれば少なくとも54行目の前に来るべきだと思います。今回はおそらくファイルの読み込みでエラーが発生したのにファイルの末端というわけではないため永遠とループしたのではないかなと思います。違ってたらすみません...。sqlite3をDxLibのプログラムに組み込めないあまり詳しくないので的外れかもしれませんが...ItemTable.cppの37行目でsqlite3_close(ItemDB);で閉じているのに60行目のsqlite3_execでアクセスしようとしているのはどうでしょうか。KeyInputNumber関数の入力の位置を示す棒の点滅がしたい試してませんがSetKeyInputCursorBrinkFlag関数で点滅はできませんか?SetKeyInputStringColor2でDX_KEYINPSTRCOLOR_NORMAL_STRを指定し色を指定すると入力文字の色が変えられます。非公式APIがありますのでDxLibの中身を見てみてください。p++)はアクセス違反を起こします。初期値が4なのに対してカウント数はPADBN分ありますのでその分アクセス違反です。4はアクセス違反に直接関係ないと思います。(=27)までループしているので、確保された範囲外へのアクセスになります。キーコンフィグのシステムを作ろうとしたら・・・STGbody.cppの113と114行目のifの変数が違います。アクセス違反を起こします。初期値が4なのに対してカウント数はPADBN分ありますのでその分アクセス違反です。mul)のmulは2倍ずつ増えていくようになっていますが、これはあっていますか?パッドのプログラムは作ったことないのですが気になります...。それから条件が多い場合はswitch文を使うようにしましょう。見にくいだけでなくバグの見落としの原因です。RSA暗号についてできました...!トピックを立てて1ヵ月になりましたが、みなさんありがとうございました!復号できなかった主な原因として、暗号化した文に終端文字が含まれていることでした。暗号化した文字列をコピーする際に、256バイト分あるはずが、途中で終端文字に出会い中途半端なところで切られていました。よって全てのコピー関数をmemcpyにしてサイズ指定することで解決いたしました。本当にありがとうございました。RSA暗号について詳しく調べてみました。実は送信時にBIGNUMの値をBN_bn2hexで文字列化しています。送りやすいのと管理のしやすさのためです。文字列化前はnの中身がtop:64dmax:128neg:0となっているのですが、BN_hex2bnでBIGNUMに戻すとtop:64dmax:64neg:0となってしまいます。RSA暗号について通信の方で詰まっていて遅れてしまいました。検証ソースありがとうございます!だいぶ出来上がりました。現在復号の時にエラーが出てしまいます。02とエラーが出ます。デバッグしてみたのですが見当たるものはなく、そもそもこのエラーが何を示しているのかが分かりません。キャラクターにアニメーションさせるスピードを遅くしたいのですが。キャラクターにアニメーションさせるスピードを遅くしたいのですが。正解は1つというわけではありませんが、やはりフレーム数で判定する方法が妥当だと思います。これはランダムな値を5で割った余りが0だったらという風に書いています。連続して余りが0の値だったら連続的に動いてしまうし、どちらかというとカクついた感じになると思います。これまで出てきたフレーム数というのは、whileの繰り返した回数みたいなものです。絶対と言えばウソですが。入れても大丈夫だと思います。すみません、自分で「nとeを直接入れてもいいか」と聞きましたがやり方が分かりませんでした...。AESとRSAを組み合わせる、ということしか分からないのでなんとも言えません。AESの共通鍵をRSAを使い暗号化して送信するために、まずRSAの公開鍵を相手に渡す作業を行いたいです。説明が下手で申し訳ないです...。前回AES暗号が出来上がりましたので、それをRSAを使って相手に送信したいのです。(AESの質問)と同じく、RSA暗号について分からない点があり、調べてもあいまいなことしか書いてなかったりそもそも載っていなかったりと不明な点がありますので、こちらで質問させていただきます。C言語でOpenSSLのRSA暗号を使い通信するソフトを作っています。前回AES暗号が出来上がりましたので、それをRSAを使って相手に送信したいのです。質問内容をまとめました。・作成した公開鍵と秘密鍵をPEMファイルに出力してそのデータ(公開鍵)を相手に送信するのか。・秘密鍵をPEMファイルとして出力した際、セキュリティ的に安全か。・そもそも鍵をPEMとして出力する必要があるのか。C言語でOpenSSLを使ったAES暗号についてありがとうございます。おかげでAES暗号が完成しました。C言語でOpenSSLを使ったAES暗号についてありがとうございます。作業がはかどりそうです。キー生成はAES_set_encrypt_keyか何かでしょうか?質問ばかりで申し訳ないですがよろしくお願いします。8617C言語でOpenSSLを使ったAES暗号についてC言語でOpenSSLを使い、文字列をAES暗号するプログラムを作っています。ネットで調べて試行錯誤でやっていましたが、もう分からないことだらけなのでトピックを立てました。質問内容をまとめました。呼ぶたびに、初期化関数[EVP_CIPHER_CTX_init],[EVP_EncryptInit_ex]を呼び、最後に終了関数[EVP_CIPHER_CTX_cleanup]を呼ぶべきか。・暗号化後にBase64にエンコードし、復号化前に暗号文をBase64にデコードするソースを見かけたが、あれは必要か。・キー生成は自分で行うのか。キーは文字なのか数字のみなのか。メモリにある構造体を取得あっさりできてしまいました...。ご返信ありがとうございました。511メモリにある構造体を取得マルチスレッドとSetUseASyncLoadFlagのFileRead_fullyLoad関数などを使って、ファイルから情報の入った構造体のメモリアドレス取得したのですが、そのメモリアドレスからサイズ分を構造体に入れることができずに困っています。単純な値だと試行錯誤でできるのですが、値が不安定なためどのように値を取得していくのか全く分かりませんでした。知識不足ではありますが、よろしくお願いします。可変引数ではありません。自作スタイルのウィンドウ...と、諦め切れずに色々と試行錯誤した結果、何とかできましたので報告いたします。フレームを見えなくする方法としてクライアント領域を広げることで解決いたしました。良い方法かどうかは分かりませんが、これが一番いいと思います。次に、ウィンドウがアクティブになるときにフレームが再描画?されるようでチラつきます。これをなくすために、WM_NCACTIVATEメッセージで0を返すことで解決しました。自作スタイルのウィンドウあれから色々試してみましたが、結局諦めることにしました。今度は.NETベースで挑戦してみたいと思います。ご回答ありがとうございました。ゲームの画面の大きさを変える処理を入れると重くなります画面切り替え時にハンドルをリセットしない関数を紹介します。SetDrawScreenはループに入れても構わないと思います。上記の関数を使うことでSetDrawScreen関数もリセットされないはずですので一度呼び出せばよいかと。ハンドルからグラフィックのサイズを取得する横から突っ込む形になって申し訳ないです。コードを新米に要求するのもおかしな話ですね。あなたはコードを挙げたときに初めてC言語歴2週間だと公表しました。回答者さんは皆、あなたがとてもできる方だと思って今まで答えていたに違いありません。ご自分で計測用プログラムを作るとおっしゃっていますし。自分がここに来る度に、先輩方は敵意をむき出しにして、集団で襲い掛かってこられるようですね。あなたが回答者さんの回答についてほとんど触れずに話を進めているためです。口先だけで何も作らないだろうと仰っていた名人様もおられますが、何もしないのはどちら様なのでしょう。Chromeを使ってないのでネットで見かけたスナップショットから感想ですが、フレーム部分は標準のまま使っていて内側からはみ出しているものもないように見えます。私もスナップショットを見て気付いたのですが、そういえばChromeにはテーマを変更する機能があります。私は今標準ではないテーマを適用しているので「特別」だと思っていました。テーマ」で検索していただければよいかと思います。フレーム部分(というか背景)が自分好みになります。正しい情報を知りたければウィンドウスパイツールなどで実際にウィンドウスタイルを確認すると良いでしょう。スタイルを調べてみました。・WS_OVERLAPPEDWINDOW・WS_VISIBLE・WS_CLIPSIBLINGS・WS_CLIPCHILDREN・WS_BORDER・WS_DLGFRAME・WS_EX_WINDOWEDGEOVERLAPPEDWINDOWが指定されている時点で境界線もタイトルバーも作られているようですね...。自作スタイルのウィンドウタイトルバーはできました。ありがとうございます。サイズ変更(Aeroスナップ)については、どうやらウィンドウスタイルでフレームを指定しないと、WM_NCHITTESTで適当な値を返してもダメなようです。chromeなどのソフトはAeroスナップが効きますし、何らかの方法があるはずです。WM_NCHITTESTメッセージを処理すればウィンドウのどこでも好きな場所をタイトルバーにできます。タイトルバーにしたところはどこでもクリックアンドドラッグで移動できるしAeroスナップやAeroシェイクも効きます。2658自作スタイルのウィンドウウィンドウをオリジナルにしたいのですが、全て自作するとwindowsのAero機能などが適用されず困っています。分かりやすい例ですが、見た目は明らかに普通のウィンドウではなく、すべてオリジナルになっています。タイトルバーを移動するとAero機能などの普通のウィンドウの操作ができます。これをC言語で作りたいのですが、非クライアント領域への描画以外に何か方法はありますか?また、質問とは離れてしまいますが、タイトルバーにOfficeボタンみたいなオブジェクト?を付けるのはどのように行っているのでしょうか?よろしくお願いします。367録音デバイスを無効にすると動作しないwaveInOpen系の関数を使い、録音デバイスからの入力データを表示させるプログラムを作ったのですが、録音デバイスがどれか無効になると動作が止まってしまいます。調べてみると、waveInGetDevCapsやwaveInGetNumDevsなどの関数が返ってこないようです。この関数なしでは作れないので、どうしても直すことができません。関数が成功すると、デバイス数が返ります。