検索結果 945 件

by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 継承とアップキャストとstd::listについての質問です
返信数: 4
閲覧数: 2895

Re: 継承とアップキャストとstd::listについての質問です

前提として,クラスBとそれを継承したクラスDがあり,別にクラステンプレートC<T>があるとき, DはBを継承しているので B * p1 = new D(); は正しい C<D>はC<B>を継承 していない ので C<B> * p2 = new C<D>(); は正しくない C<D *>はC<B *>を継承 していない ので C<B *> * p3 = new C<D *>(); は正しくない となっています。 コンテナ要素の継承関係は実体化されたコンテナの継承関係に影響を与えません。 JavaのgenericsのワイルドカードやC#のgenericsにおけるin/outは上記の制限の一部を取り...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: デバッグが途中で止まる
返信数: 3
閲覧数: 2270

Re: デバッグが途中で止まる

ソースコードは,ideoneへのリンクではなく,掲示板本文にcodeタグを使って貼り付けるようにして下さい。 トレースポイントを93行目に置いてトレース文字列を"m = {m} / j = {j}"として実行してみたところ, m = 0 / j = 0 m = 3 / j = 1 m = 3 / j = 2 m = 3 / j = 3 m = 3 / j = 4 m = 3 / j = 5 m = 3 / j = 6 m = 3 / j = 7 m = 3 / j = 8 m = 3 / j = 9 m = 3 / j = 10 m = 3 / j = 11 m = 3 / j = 12 m ...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: mapに自作クラスをinsertしようとすると落ちる
返信数: 4
閲覧数: 4787

Re: mapに自作クラスをinsertしようとすると落ちる

mapをメンバとして持つクラスを作ったのですが、mapに自作のクラスをinsertしようとするとプログラムが落ちます。 map<int, string>などは普通にinsertできるので自作クラスに問題があるのではないかと思っていますが、原因が分かりません。 それを調べるためにデバッグするのですが……。 開発環境はWindows7(64bit)、VisualStudio 2012です。 VS2012なら,IDEでソースコードデバッグできるし,落ちる前にIDEが例外を捕らえてくれると思いますが。 ちゃんと,「デバッグ開始」で実行して試しましたか。 コンパイルは通るのですが、プログラムを実行する...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: javaのimportについて質問があります
返信数: 8
閲覧数: 3150

Re: javaのimportについて質問があります

パッケージは関連のあるクラスをまとめる他に,名前空間の分離という役割もあります。 完全修飾名が一意であればクラス名は同一でも良いので, java.util.Date と java.sql.Date のようにパッケージを除くクラス名が同じものも存在します。 標準ライブラリでこれはどうなの,とは思いますが,同じ目的の異なる複数のライブラリで同じクラス名になることは容易に想像が付きます。 e.g.) org.codehaus.jackson.JsonFactory / com.google.api.client.json.JsonFactory なので,これをパッケージを使って分離している側面もあり...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 2つの別々のアプリで情報を共有
返信数: 3
閲覧数: 2419

Re: 2つの別々のアプリで情報を共有

非DxLib側にウィンドウがあるのであれば, WM_COPYDATA でデータを送信するのが簡単です。 注意点は, SendMessage で送信することを要求されているため,受け側のウィンドウプロシージャが長時間処理 (本来してはいけない) をしていると,巻き込まれてDxLib側まで中断されてしまうことです。 WM_COPYDATAの処理だけに時間がかかるのであれば,場合によっては ReplyMessage で呼び出し元を復帰させることで待機時間を減らすこともできるかと。 ---- 追記 (2012-11-22T09:58+09:00) CreateFileMapping を使うことで,共有...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2008 サイドバイサイド
返信数: 6
閲覧数: 7020

Re: VC++2008 サイドバイサイド

Debug版だから,再頒布可能 (Redistributable) 系の物をインストールしても入らないと思います。 %WINDIR%\WInSxS\x86_microsoft.vc90.debugopenmp_1fc8b3b9a1e18e3b_9.0.21022.8_none_469e7800ca24708e がないのであれば,VC++の修復インストールを試みるのもよいかもしれません。 あとは,インストーラー作って個別インストールする方法や最新版にバインドさせる方法などが, Johan Seland: Running 64-bit OpenMP Debug Builds compiled wi...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++ FindFirstFileの使い方
返信数: 2
閲覧数: 4532

Re: C++ FindFirstFileの使い方

Win32 APIが失敗したならば,まずはGetLastError APIを呼び出して,エラーコードを取得する必要があります。
# 他の方法でエラー原因を通知したり,エラー原因の取得が出来ないAPIもありますが。

次に,ブレイクポイントやウオッチを使って,デバッグします。
大抵は,その時点でデータがおかしいはずです。そのおかしい原因をさらに探ります。

コードを見る限り,データファイルかstr1の実際の設定値がおかしいのではないか,という気がしますが……。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: プログラミングの二つの不満
返信数: 16
閲覧数: 5694

Re: プログラミングの二つの不満

needsueda さんが書きました:1.教科書や参考書に入門編があっても実務編が見当たらないこと。
ここでいう「実務」は,どのようなものを対象とし,どのような人を対象としていますか。
CであってもデスクトップアプリとWebと制御と組み込みとゲーム,全て方向性が異なると思いますが。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: _wfopenを用いたファイルの書き込み、読み込みについて
返信数: 9
閲覧数: 9209

Re: _wfopenを用いたファイルの書き込み、読み込みについて

>みけCATさん windows.hの中でwindows.hをインクルードしてれば問題ないはずですよ みけCATさんの書かれたことが伝わっていないようですね……。 TEXT というマクロは, #ifdef UNICODE #define TEXT(v) L#v #else #define TEXT(v) v #endif という作りになっています。 つまり,UNICODEの定義の有無によってワイド文字列定数になるか標準の文字列定数になるかが決まります。 プロジェクトのプロパティで,文字セットを「Unicode 文字セットを使用する」から「マルチ バイト 文字セットを使用する」に変更してみると...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: エディットで自動ポップアップを無効化したい
返信数: 8
閲覧数: 3549

Re: エディットで自動ポップアップを無効化したい

サブクラス化でコンテキストメニューの抑止はできますが……。 面倒なんでテストコードをそのまま (VS2010 in Win8pro)。 #include <Windows.h> #include <CommCtrl.h> #pragma comment(lib, "comctl32") LRESULT CALLBACK EditSubClassedProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData) { if (uMsg == WM_CONTEXT...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: バイナリコード変換時の処理に改行コードを含めて処理をしたいのですが
返信数: 10
閲覧数: 6641

Re: バイナリコード変換時の処理に改行コードを含めて処理をしたいのですが

そもそも最終的にstringにするなら 最初からstring変数に追加していけばいい気がするので。 だってchar型の追加できるしね。。 C#ならこういう場合は StringBuilder というのがあってですね……。 # C#の String はJavaと同じくimmutable。C++のstd::string相当 (mutable) はStringBuilder。 おまけ。 public static string BinToHexStr (byte[] data) { return String.Join("\r\n", data .Select((b, i) => new { Val...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++ , C# , Javeの違いについて
返信数: 16
閲覧数: 8273

Re: C++ , C# , Javeの違いについて

なるほど,C#というよりMS側の周辺環境ですね。 それに関しては……色々と問題ありなのは確かです……。 えーと、主にXNAとIE10(METRO)のSilverlightなどマイクロソフトの対応です。XNAの日本での扱いは特に初心者にひどいです。 今年になって、やっと整理されたんですが旧名XNA App HubなんかWindowsPhone7登場あたりからWindowsPhone専用にしか見えませんでした。 XNA→AppHubの日本事務局が酷いのは昔から言われてますね……。 Twitterで何人かXNA系の方をフォローしていますが,最近は愚痴すらでなくなりました。 まぁ,Xbox360の普及...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++ , C# , Javeの違いについて
返信数: 16
閲覧数: 8273

Re: C++ , C# , Javeの違いについて

softya(ソフト屋) さんが書きました:【C#】 問題はあるが色々なところで使われている。 Vitaなど「PlayStation Suite」やunity3Dでゲームを作るとか、XNAでWindows/xbox360のインディーズゲームを作成可能。
こういう書き方をされると,C#erとしては「何が問題なのか」を聞きたくなりますね。
# あと,XNAはWindows Phone 7.xのゲームも作れますよ……と書いておきます。実質IS12Tしか国内では存在しないですが……。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: VC++2008 continue 指定
返信数: 5
閲覧数: 2290

Re: VC++2008 continue 指定

VC++2008 64bit 環境でプログラミングしているものです. continue文は多重ループ時にラベルを用いて何処からcontinueする指定出来るらしいのですが・・・. それはJavaの話ではないですか。 C++にそのような機能はありませんし, MSDN にもそのような記述はありません。 代替するなら,continue対象としたい繰り返し文の複文の末尾にラベルと;を書き,gotoで飛ばします。 以下,部分的に書き換えた例です。 for(int c = 0; c<10; c++){ for(int b = 0; b<10; b++){ for(int a = 0; a<10; a++...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: これははたして信頼してよいのか
返信数: 6
閲覧数: 3088

Re: これははたして信頼してよいのか

信頼できるかはあなたが決めることです。
マイクロソフトが信頼できないと思うのであれば,登録せずVisual C++ 2010の使用を取りやめればよいだけの話です。
# 事故が0とは思っていませんけどね。MS以上に個人情報を取り扱っていそうなAmazonであっても。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: ツリービュー展開メッセージ
返信数: 2
閲覧数: 1940

Re: ツリービュー展開メッセージ

MSDNは読んだ方が良いですよ。 TVIS_EXPANDONCE はメッセージではなく状態フラグです。 その名の通り,「少なくとも一度開かれたことがある」ことを意味します。 # 実際には,閉じられるとこのフラグは落ちるようですが。 Tree View の 通知メッセージ一覧 を見て調べれば, TVN_ITEMEXPANDING と TVN_ITEMEXPANDED に辿り着きます。 Common Controlsの通知は WM_NOTIFY メッセージとして通知されますから,LPARAMの値を NMHDR *にキャストして,codeの値を調べることになります。 # 最終的には NMTREEVI...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: visual studio
返信数: 8
閲覧数: 4102

Re: visual studio

個人的には2012を推奨。 Expressでも拡張機能が使える。特に,Nugetが使えるのは大きい。 最近のライブラリは,Nugetでのインストールが一般的になってきています。 ExpressでもTFS (Team Foundation Server )等が使える。試していないけれども,おそらくSCCプロバイダ全般への接続が可能かと思われる。 TFS Expressもあるし,無料のクラウドサービス Team Foundation Service も使えます。 参考書はもう少ししたら出てくるのではないかと思います。 まぁ,両方をインストールすることも可能 (2010を先にインストールすること) ...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: scanfについて
返信数: 28
閲覧数: 12603

Re: scanfについて

getch()やread()は両方共POSIX 関数ですね。Unix文化の産物でMS-DOSの亡霊です。getch()は現在のPOSIXでも載っていないのでいつの規格にあったか不明。 あ,もちろんgetchやreadの存在は知っていますよ。 どこまでPOSIXか,とかは認識していませんが。 ただ,scanfと並列に論じていたので,「その出所不明の非標準関数は何だ」ということを言いたくなった次第です。 # 非標準関数を話すなら環境を定義しろ,ということです。ここの掲示板ローカルでは,DxLibは標準の仲間扱いでよいでしょうけれども。 標準関数ではないではないかの指摘がありますが、 使用している...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: scanfについて
返信数: 28
閲覧数: 12603

Re: scanfについて

getch ってどういう関数ですか。 ISO/IEC 9899:1999 (C99) をあたりましたが,そのような関数はありません。 7.19.7.5 に getc が,7.19.7.6 に getchar が定義されていますが,それらではないんですよね。 read ってどういう関数ですか。 同じく C99 にはありませんでした。 index 上でも,rank の次が real floating type conversion ですから,read から始まる関数は存在しません。 7.19.8.1 で定義される,fread でも当然ないんですよね。 非標準の関数を標準関数である scanf (7...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++ 2010 Expressの設定初期化
返信数: 5
閲覧数: 4159

Re: Visual C++ 2010 Expressの設定初期化

VC++2010では各種ディレクトリ情報はプロジェクトごとになっていたはずですが……。
.vcxprojファイルのIncludePath要素を削除してみる等では対応できませんか。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: イテレータを回してるときの要素追加
返信数: 5
閲覧数: 4282

Re: イテレータを回してるときの要素追加

なんとなく思うことなのですが,Obj_Main関数が色々とやり過ぎていませんか。 「オブジェクトが存在するかどうかの確認」 と 「それ以外の処理」 は分離できないのでしょうか。 分離できるのであれば,分離した方が見通しがよくなると思いますが。 例えば確認処理がbool virtual C_ObjProcess::hasObject() const = 0;だとして, m_ObjPt.erase(std::remove_if(m_ObjPt.begin(), m_ObjPt.end(), std::not1(std::mem_fn(&C_ObjProcess::hasObject))), m_O...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C#で簡単に実現可能が、C++11は実現できない機能、、、
返信数: 10
閲覧数: 5110

Re: C#で簡単に実現可能が、C++11は実現できない機能、、、

個人の属性として,.NETクラスタ or その周辺域の人間なので,そのあたりは差し引いた方がよいかもしれません。 意外と.NET FrameworkはOSの最新機能を直接使えなかったりします。 そのため,例えば Windows® API Code Pack for Microsoft® .NET Framework という物があって,こちらを使わないとVista以降の機能で使えない物があったりします。 # .NET 4になって System.Windows.Shell 名前空間が出来たために,Windows 7におけるタスクバーの取り扱いが標準機能でできるようになりましたが。 1.GUI [...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談] Windows8について~
返信数: 15
閲覧数: 7360

Re: [雑談] Windows8について~

Windows Store Appsをあまり使っていないのに,最大化しているデスクトップアプリを上から下にドロップして閉じようとしている……。 でも今回はかなりの部分に大きな変更があるみたいですし 僕たちみたいなプログラムやがスルー出来る範囲の変更なのかどうかが問題になりそうですね えーっと,デスクトッププログラムの作成においては,DCOMに手が入ってWinRTが動くようになった程度だと思いますが……。 スナップをさせていて気付いたのですが,最大化したときの大きさや位置について,今まで以上に勝手な想定はできなくなっています。 元々マルチディスプレイ環境では最大化しても左上が(0, 0)とは限...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C# Bitmapクラス
返信数: 2
閲覧数: 1864

Re: C# Bitmapクラス

一応, サイズ指定でBitmapを生成した 時の色は,明文化されていなかったりします。 さらに,参照コードを経由してGDI+の Bitmap.Bitmap(INT, INT, INT, PixelFormat, BYTE*) constructor に辿り着いてもscan0にnullを渡した場合について記載が無かったりします。 それはともかく,元は new Color() を全ピクセルに設定したものと考えられるので, Graphics.FromImage で得た Graphics を, FillRectangle で透明色で塗りつぶせば良いです。 こんな感じで。 using (var g = ...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談] Windows8について~
返信数: 15
閲覧数: 7360

Re: [雑談] Windows8について~

一日つかってみての感想。 Windows8,ATOK 2011 (←最新のひとつ前のバージョン) の動きが怪しい以外は7と使い勝手がほとんど変わらないです。 MS IMEはちゃんと動くので,TSFまわりの不具合の可能性を疑っていたり。 # 最新版じゃないし,最新版でもWinRT側で動かないという制限もあるのでATOKは次期バージョンに期待。 まぁ,スタートスクリーンなんかはMSにしてはofficeのリボン以来の大きな破壊的変更だとは思いますが,今までスタートメニューを検索機能で絞り込んで使っていた人には違いがほとんどなかったり。 # 常にメニューをたどる人には大きな変更かもしれません。 ちなみ...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談] Windows8について~
返信数: 15
閲覧数: 7360

Re: [雑談] Windows8について~

当然のように明日アップグレード版をダウンロード購入予定です。 ついでに,VAIO Duo 11も予約済みです。 Surfaceの仮注文 も (これは金額未定なので,決定してから購入するか決めますが)。 TwitterのTLやRSSで確認している先にMS MVPな人が多いので,すでに置いていかれている気分だったりします。 メールで,ナチュラルに あと Windows 8 だとストレージプールだかで容量を追加できましたよね。 とか書いてきた人いますし (色々とお世話になっている方なのですが)。 UIまわりは「どうせ慣れる」と思っています。最近だけでも Windows XP→Windows Vist...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: XPathを使うべきか それともDOM?
返信数: 9
閲覧数: 5429

Re: XPathを使うべきか それともDOM?

「C++/CLI で作っているのであれば、System.Xml.XmlDocument を使えばよい、 そうではない場合は、MSXMLを検討するのがよい」という表現もありまして、 C++/CLI なら確かに XmlDocument の方が楽なんですが (COM まわりのあれやこれやが全部不要になる),根本的に C++/CLI を使う必要性がほとんど無いです。 C++/CLI 単体 .NET Framework のアプリケーションを書くならば,圧倒的に C# や Visual Basic のほうが楽ですし,Windows API などは Platform 呼び出し (P/Invoke) がある...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: XPathを使うべきか それともDOM?
返信数: 9
閲覧数: 5429

Re: XPathを使うべきか それともDOM?

MSXML6のサンプル書いてみました。 # CoCreateInstanceでE_NOINTERFACEが出ている原因が,IID_IXMLDOMDocumentをIID_IXMLDocumentと書き間違えていることに気づかず時間を無駄にした……。 まず,XML。とりあえず,名前はtest.xmlとします。 <?xml version="1.0" encoding="utf-8"?> <books> <book isbn="9784320026926"> <title>プログラミング言語C 第2版 ANSI規格準拠</title> <authors> <author>B.W.カーニハン</au...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: XPathを使うべきか それともDOM?
返信数: 9
閲覧数: 5429

Re: XPathを使うべきか それともDOM?

Windows環境限定ならMSXMLがまず出てくる選択肢かなぁ,と。
読み込むことでDOMツリーが形成されて,そのDOMツリーに対してselectNodesメソッドにXPathを使って対象を選ぶことが出来ます。

とりあえず,昔書いたサンプルがあるので,参考になればと。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 独自スタイルのボタンを作りたい
返信数: 3
閲覧数: 2005

Re: 独自スタイルのボタンを作りたい

単純な方法としては, BS_BITMAP を付けて作ったボタンに BM_SETIMAGE を送ることで,ボタンに画像を表示できます。 もっと制御を細かくしたいならば,WPF (C# or VB) を使うか,独自に描画するかになります。 WPFはControlTemplateを使うことで描画について細かく制御できます。 エンジンが内部で描画したり,クリックの制御なども行ってくれています。 独自に描画というのはこれと同じことで,描画とイベント制御を自分で行うことになります。 市販の ソフトウェア ゲームのボタンは,ほぼ独自描画であると思います。 updated (2012-10-19T09:55+...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 携帯電話(ガラケー)から接続した時に表示される携帯電話用サイトを、パソコンから見たい
返信数: 8
閲覧数: 10996

Re: 携帯電話(ガラケー)から接続した時に表示される携帯電話用サイトを、パソコンから見たい

先に理由から。
たいていの場合,携帯電話からのアクセスの確認は,User-AgentとIPアドレスを確認していると思います。
なので,UA名偽装だけではだめで,IPアドレスを何とかして偽装する必要があります。

ただ,IPアドレスの偽装というのはCrackするわけではないので難しく,
Softbankの携帯をモデムとして使ったらできたという例もありますが,DoCoMoでは出来ないようであるという例もあるため,確実とは限りません。
とりあえず試してみることはよいかもしれませんが……。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談]プログラミングで一番嫌な経験は?
返信数: 24
閲覧数: 9367

Re: [雑談]プログラミングで一番嫌な経験は?

バージョン管理,VS2010/2012なら Team Foundation Server 2012 Express もありますよ。VS 2012ならExpressでもTFS連携可能です (2010はStandard以上, 2010からはチームプロジェクト生成不可っぽい )。 ALM (Application Lifecycle Management) とか言い出すとややこしいことがいっぱいですが,バージョン管理+BTSとしての利用あたりで留めるなら難しい話もそんなにないかと。 2012系なので,Windows 7/8かWindows Server 2008/2008R2/2012が必須となりま...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: ユーザ名変更後にGetUserName()で新しいユーザ名が取得できない
返信数: 2
閲覧数: 1991

Re: ユーザ名変更後にGetUserName()で新しいユーザ名が取得できない

ユーザー名の変更で変更できるのは,[コンピューターの管理] - [ローカルユーザーとグループ] - [ユーザー]における「フルネーム」だけであって「名前」ではありません。
GetUserNameは「名前」を取得します。

詳しいアカウント情報は,NetUserGetInfo使えば得られます。
フルネームを得たいだけなら,GetUserNameExEXTENDED_NAME_FORMAT::NameDisplay渡せばよいでしょう。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: こんな種類のファイルはありますか
返信数: 14
閲覧数: 3317

Re: こんな種類のファイルはありますか

とりあえず思いつくのはtar。通常は後段にgzipだのcompressだのかけて圧縮しますが,tarのみで使えば単なる書庫になります。 reference) List of archive formats - Wikipedia, the free encyclopedia データ自身に関して暗号化や圧縮は要りませんが、 その親ファイルをオープンするためにパスワードを必要とします。 「オープンするためのパスワード」というのは,あまり意味がないと思いますが。 それを無視すれば,情報が取得できてしまうのですから。 .zipなどの圧縮書庫におけるパスワードは,データ自体の暗号化・復号におけるキーです。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C#のデータバインディングコントロールについて教えてください
返信数: 3
閲覧数: 7515

Re: C#のデータバインディングコントロールについて教えてください

誤解させてしまったかもしれませんが, # 私の場合だと,Clock自体が Timer 持っていて, SynchronizationContext を経由してPropertyChangedイベントを発生させる形式にしますが。 の「Timer」は WinFormsのTimer ではなく,System.Timers.Timerの方です。 このタイマーはスレッドを使うので,SynchronizationContextを経由してUIスレッドでイベントを発生させる,という方法になっています。 SynchronizationContextを使うのは, System.Windows.Forms.Timerを使...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C#のデータバインディングコントロールについて教えてください
返信数: 3
閲覧数: 7515

Re: C#のデータバインディングコントロールについて教えてください

データバインディングコントロールをラベルにバインドし、プロパティが書き換えられると同時に バインドさせたラベルの文字列を書き換えて時計を作ろうかと思ったのですが 起動した時刻が表示されたっきりで、そのあとラベルのテキストが更新されません Windows Formsのデータバインディングでバインドソースからコントロールの表示が更新されるのは, INotifyPropertyChanged . PropertyChanged イベントがソースで発生し, イベントオブジェクト の PropertyName プロパティがバインドしているプロパティの名前と一致する場合 バインドしているプロパティの名前...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 10章のmemsetに関して
返信数: 4
閲覧数: 1981

Re: 10章のmemsetに関して

Windows上の処理系,というか,ISO/IEC/IEEE 60559 (a.k.a. IEEE 754) の浮動小数点数の表現において,全ビット0は0だから,というのが理由でしょうか。
8087系/80486系のFPU/CPUはIEEE 754の表現方式を使っているため,浮動小数点数演算をエミュレートするような特殊なコンパイラを使わない限り,全ビット0のfloat/double/long double型のオブジェクトの値は0になります。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクト指向プログラミングについて その2
返信数: 5
閲覧数: 3123

Re: オブジェクト指向プログラミングについて その2

学問的に正しくないことや定義の曖昧さを恐れず書くなら,多態性とはC++において 継承と仮想関数の利用,および基底クラスへのポインタ型/参照型へ派生クラスへのポインタ/参照を代入することで,同一の実行コードがデータによって異なる振る舞いをすること (実行時多態) templateを使って,同一のソースコードが型によって異なる振る舞いをすること (コンパイル時多態) でしょうか。 主に前者で使われる言葉ではありますが。 Polymorphism (computer science) - Wikipedia, the free encyclopedia の類型で言うなら,前者は「 Subtype p...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: phpとmysqlでidとパスワードを登録するようなシステムを作りたいです
返信数: 11
閲覧数: 40631

Re: phpとmysqlでidとパスワードを登録するようなシステムを作りたいです

たぶんプログラム的な間違いはなくなったと思うんですけど 根本的に, mysql_* を使うこと自体が間違いという気が……。 MySQLi や PDO 使うことをお薦めします。 現状だと, 文字列が''で囲まれていないので,数値でないものが入るとINSERT文がエラーになる mysql_*はパラメタ化クエリが使えないので 入力文字列をエスケープする[/url必要があるが,それをしていない [/list]あたりは基本的な問題点かと思います。 あと,失敗したならば[url=http://www.php.net/manual/ja/function.mysql-error.php]mysql_err...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C#の質問です
返信数: 13
閲覧数: 7626

Re: C#の質問です

YuOさんのサンプルソースでは エディットボックスから数値を取得している箇所が見当たらないのですが どこで取得しているのでしょうか? テキストボックスからプロパティへの値の設定は,データバインディングの設定によって行われています。 フォームやコントロールのプロパティを見ると,(DataBindings)という項目があります。 この項目を開くと(詳細)とTextやTagなどが表示されます。 今回の場合は,textBox1 (値1を設定するTextBox) のTextプロパティには, presentationModelBindingSourceのValue1とバインドする データソース更新モード...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C#の質問です
返信数: 13
閲覧数: 7626

Re: C#の質問です

MVCまわりで長々書きますが,「ModelとViewは分離する」ことが重要です。 ViewにModelが引きずられると,Modelの修正が非常に面倒ですので。 「入力」→「処理」→「出力」という流れであれば,「処理」はView,つまりForm (のコードビハインド) に書かないようにするとよいです。 例示された物だと,「ネットワークに文字列を送信する」処理をFormに書いてはいけません。 # 出来ることの確認等でこねくり回す間はFormでもよいでしょうけれども……。 YuO さんの推奨されたC#のデスクトップアプリでMVC/MVP/PM/MVVM/Doc-Viewの分かりやすい例は探してみまし...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C#の質問です
返信数: 13
閲覧数: 7626

Re: C#の質問です

ModelとViewは分離せよ,というGUIの基本的なところに則るなら (e.g. MVC/MVP/PM/MVVM/Doc-View), データや処理を請け負う「Modelオブジェクト」があって,それを「View (=Form)」に渡す Viewは処理をModelに丸投げする ViewはModelの変更をEventを通じて監視する (Observer パターン) といったところでしょうか。 ObserverパターンのためにEventは.NET Frameworkに組み込まれていますし, ModelとViewを一致させるためのデータバインド機構は.NET Framework 1.0から存在してい...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 変分ベイズ推定のプログラムなのですが・・・
返信数: 1
閲覧数: 1835

Re: 変分ベイズ推定のプログラムなのですが・・・

根本的なところですが,std::stringを使っているのに<string>をインクルードしていないのはなぜですか。
他のヘッダがインクルードしているとは限らないのですが。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: BYTE(unsigned char)型からint型への変換に関して
返信数: 3
閲覧数: 5766

Re: BYTE(unsigned char)型からint型への変換に関して

CryptGenRandomの呼び出しがどう見てもバッファーオーバーランです。

それはともかく,わざわざ暗号学的に安全な乱数を発生しているのですから,そのまま使えばよいのではないでしょうか。
32bitの乱数を発生させて,それをポインタをキャストするなりunion使うなりして,int型として扱えばよいのです。

ただ,本当にそこまで暗号学的に安全な乱数がいるのか,という疑問点はありますが。
この手の乱数は,IVなどでバイト列をそのまま使うことを前提としているので,出てきた値を弄るには向いていない気がします。
# 弄った後に安全性が保てないなら,わざわざこの手の乱数を使う必要がないので。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: INIファイルで相対パスを設定する
返信数: 3
閲覧数: 6213

Re: INIファイルで相対パスを設定する

GetLastError の戻り値は何ですか。 WritePrivateProfileString はエラーがあった場合は0を返し,詳細な情報はGetLastErrorから得ます。 相対パスが書けない,ということはないと思いますが。 #include <windows.h> int main (void) { // カレントディレクトリの確認 WCHAR buffer[512]; ::GetCurrentDirectoryW(512, buffer); lstrcatW(buffer, L"\r\n"); OutputDebugStringW(buffer); BOOL result = :...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 実行結果コピー
返信数: 2
閲覧数: 1394

Re: 実行結果コピー

解決となっていますが……。

リダイレクトすればファイルに出力できるのはご存じでしょうか。

コード:

ConsoleApp > output.txt
とすると,標準出力がoutput.txtに出力されます。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: dropdownlistについて
返信数: 1
閲覧数: 683

Re: dropdownlistについて

何か,隠れた前提が色々ありそうに思えます。
# GUIアプリケーションなのか,Webアプリケーションなのか……Webアプリケーションはなさそうですが。
「テーブル」「カラム」からは後ろにRDBが見え隠れしますが,「ひも付ける」「取り除く」あたりからは普通では無い設計が想定されたりします。
# goods側からperson側へ参照があるのかな?

フォーラムルールのページにあるテンプレートに沿って,必要な情報を提示してみてもらえませんか。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 別プロセスのスレッド全列挙
返信数: 2
閲覧数: 2385

Re: 別プロセスのスレッド全列挙

使ったことが無いのですが,CreateToolhelp32Snapshotでスナップショットをとって,Thread32FirstThread32Nextで列挙できそうです。

ref) Win32 API でアプリケーションを列挙する方法 … スレッドの列挙方法では無いですが,キーワードを調べるのに利用しました。
Traversing the Thread List … スレッドの列挙サンプルっぽい。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: c++を使ったプログラミング!できる方いませんか??
返信数: 51
閲覧数: 14266

Re: c++を使ったプログラミング!できる方いませんか??

問題を再定義していただけませんか? 質問の内容が、また分からなくなっています。 「一定の操作」ってどんな操作ですか? 「その数」って何を指していますか? 一定の操作、今では、2147483647までは、31回の操作で偶数になりました。 その数、下記の赤い部分が無い=奇数が続く、と言う事です。 ※青い文字は黒である背景色に対して非常に読みにくいので,引用時に色情報を削除しました。 なぜ,「一定の操作」を数式で記述しないのですか。 その上で,求めたい値を数式中の変数で示せば,回答者が言葉の多義性について解釈をする必要はなくなるのですが。 私の見解ですが、一定の操作をすると、偶数にならないと思うの...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: マルチスレッドの仕樣について
返信数: 19
閲覧数: 9576

Re: マルチスレッドの仕樣について

スレッドオブジェクトは, スレッドが終了している 自身を参照する,開いているスレッドハンドルが一つも無い の二つの条件を満たすと破棄されます。 いくらCloseHandleしても,実行中のスレッドオブジェクトは破棄されず,スレッドが中断されることもありません。 スレッドハンドルはスレッドオブジェクトを操作するための物であって,スレッドオブジェクトそのものでも,スレッドそのものでもありませんから。 さて,今回closedが表示されなかったのは,「たまたま」でしょう。 作られたスレッドがメインスレッドの実行とどうスケジュールされるかで結果が変わります。 メインスレッドが終了する前にclosedまで...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: c++を使ったプログラミング!できる方いませんか??
返信数: 51
閲覧数: 14266

Re: c++を使ったプログラミング!できる方いませんか??

Cが3の時は,いつまで経ってもc i は偶数にならないと思いますが……。 A=3,C=3のとき、 (3×3+1)/2は5 次に (3×5+1)/2は8 になり偶数になるのですが? 問題が数学でちゃんと説明されていないが為に,c j って何,という点で解釈が分かれているようです。 私は c j =(Ca j +1)÷2 と解釈しましたが(繰り返すのはa i+1 を求める作業),nonさんは c 0 =a i c j+1 =(Cc j +1)÷2 と解釈されている(繰り返すのはc j+1 を求める作業)ようです。 後者の一般項は, c j =(C/2) j (2 i (A+1)+(3-C)÷(C...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: c++を使ったプログラミング!できる方いませんか??
返信数: 51
閲覧数: 14266

Re: c++を使ったプログラミング!できる方いませんか??

数学だけで考えてみた。 ある奇数をAとおき、ある奇数を次の式のAに代入→(2×A+1)して、求められた値をBとおき、そのBをまた先ほどの式→(2×B+1)に代入して計算する。これを永遠に繰り返す。(表計算ソフトの場合Bの値は844424930131967とでました。) それと同時に、(2×A+1)、 (2×B+1)それぞれによって、求められた値(上のような場合は、AとBの値)を、nに代入して、(C×n+1 ) ÷2と計算し、次の値が 偶数 になるまでこの計算を繰り返す。(Cの値は今回3とおきます。) ある奇数をA, Cとし,a i (i∈ℕ 0 )とc i (i∈ℕ + )を以下のように定義す...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C#でForm1からForm2を開き・・・
返信数: 4
閲覧数: 3269

Re: C#でForm1からForm2を開き・・・

FormをCloseしただけでは,テキストボックスは破棄されません。 なので, Form2にtextBox1.Textを返すプロパティを用意する Form1側でShowDialogから戻ってきた時に,Form2の,先のプロパティを使って必要な設定を行う ことで実現可能です。 つまり,Form2からForm1へ値を渡すのではなく,Form1がForm2の値を取得します。 # or Form2にForm1のインスタンスを渡しておいて,Form2がForm1のメソッドを呼び出すのも可。 この手の質問はよくあるのですが,他のフォームのコントロールは直接触らず,専用のプロパティを通じて取得するのが基本で...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 基底クラス : 派生クラス と定義したとき、派生クラスで引数付きコンストラクタを定義するとコンパイルが通らない
返信数: 6
閲覧数: 7974

Re: 基底クラス : 派生クラス と定義したとき、派生クラスで引数付きコンストラクタを定義するとコンパイルが通らない

この : super(a) とは、何でしょうか? コンストラクタ初期化子です。 コンストラクタにおいて,自身の複文を実行する前に初期化を行うための構文です。 前に、同じ部分に sub (int n) : num(n) { /* ... */ } というのも見たことがあるのですが・・・ コンストラクタ初期化子では, 仮想基底クラス 直接の基底クラス そのクラスに定義された非静的メンバ変数 の初期化を行います。 なので,メンバ変数の初期化もおなじ場所に出てきます。 numは親クラスのメンバ変数(関数ではなく)だった気がします。 親クラスのメンバ変数は初期化できません (それは親クラスの役割)。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 基底クラス : 派生クラス と定義したとき、派生クラスで引数付きコンストラクタを定義するとコンパイルが通らない
返信数: 6
閲覧数: 7974

Re: 基底クラス : 派生クラス と定義したとき、派生クラスで引数付きコンストラクタを定義するとコンパイルが通らない

派生クラスに引数付きコンストラクタがあるからでは無く,
基底クラスに引数付きコンストラクタしかなく,それを派生クラスで呼び出していないためにエラーになっています。

コード:

sub (int a) : super(a) { /* ... */ }
のように,基底クラスのコンストラクタを正しく呼び出せばエラーになりません。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: intやcharの大きさについて
返信数: 5
閲覧数: 3599

Re: intやcharの大きさについて

定義により,charは1バイトです。
ref) ISO/IEC 9899:1999 6.5.3.4 The sizeof operator
それ以外の型は,最低限表せなければならない範囲と,表すことの出来る範囲の大小関係のみが決まっています。
1バイトが64ビットで,signed char/short/int/long/long longが全て64ビット値を表現可能,という処理系であっても規格に反しません。
# 1バイトは8ビット以上であって8ビットとは限らない。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: プロパティに値が入りません
返信数: 3
閲覧数: 1265

Re: プロパティに値が入りません

書かれている内容にテキストボックスが出てきていません。
ソフトウェアは書かれたように動くのであって,思ったように動くのではないですよ。
  • フォーラムルールの「質問は具体的にする」にある,5項目についてそれぞれ1項目ずつ回答を書いてみてください。「よくわからない人はテンプレで」のテンプレートに対して1項目ずつでもよいです。
    なお,前者の5番目,後者の3のひとつ目の質問の「C」は「C#」と置き換えてください。
  • ソースコードはcodeタグで囲ってください。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: プロパティに値が入りません
返信数: 3
閲覧数: 1265

Re: プロパティに値が入りません

これだけでは回答できません。

使っているのは
  • WPF
  • ASP.NET
  • Silverlight
  • WinForms
  • その他
のどれでしょうか。また,宣言したプロパティとテキストボックスのおそらくTextプロパティの値の紐付けは,
  • データバインディング
  • 都度代入
  • その他
のどの方法で行っているのでしょうか。
上記で「その他」を選んだ場合は,その内容も書いてください。

以上は,「最低限の内容」です。フォーラムルールのページに質問テンプレートがありますので,そちらも使って質問を書き直してみてください。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: 配列のポインタ渡し
返信数: 7
閲覧数: 3157

Re: 配列のポインタ渡し

そもそもC++なら配列ではなくstd::vector<VECTOR>使えばいいのでは?
push_backしていくだけですから,それほど難しくないかと。

ちなみに,
  • ポインタ型の配列 (array of pointer type)

    コード:

    T *array[N]
  • 配列型へのポインタ (pointer to array type)

    コード:

    T (*pointer)[N]
です (Tは大元の型,Nは要素数)。
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: Microsoft Visual C++2010で作成したプログラムのエラーについて
返信数: 12
閲覧数: 4089

Re: Microsoft Visual C++2010で作成したプログラムのエラーについて

80MBのスタックの要求があるため,スタックオーバーフローで動きませんね……。 まぁ,Dをstaticにすれば実行可能にはなるわけですが……。 # コピペしただけではコンパイル通らない (U+3000が入っている) しかし、二次元配列Dに値が格納されません>< デバッグしましょうよ。 ちなみに,デバッグとは[デバッグ]メニュー - [デバッグ開始]で実行することではないですよ。 2011-07-01T18:55+09:00の投稿にデバック (デバッ グ の間違い?) したと書いてあったので。 というか,最初の投稿を見るに,デバッグとビルドを間違えている? a=1.00; の行にカーソルを移動す...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: STLのvectorコンテナを使ったプログラムで質問があります
返信数: 6
閲覧数: 2752

Re: STLのvectorコンテナを使ったプログラムで質問があります

ポインタコピーしても元になるポインタが指し示すオブジェクトはコピーされませんよ。

----

2012-06-30T19:23+09:00 表現がおかしいと思ったので修正
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: C++のファイルストリームに関して
返信数: 8
閲覧数: 3509

Re: C++のファイルストリームに関して

入れ違いで赤鬼さんの返信があったようですが,気にせずに投稿します。 バイナリファイルで書き込む際にコンストラクタとデストラクタでしっかり開放してくれるらしいので便利だと思うのですが何故第一引数が(char*)なのですか?。 char *ではないです。 const char_type *です。 std::ofstreamではchar_typeは確かにcharですが,std::wofstreamではchar_typeはwchar_tになります。 仕様だからとかそういうのはなしでお願いします。 何故char*なのかの理由が知りたいです。 予想するに,キャラクターベースのストリーム入出力を前提に書かれ...
by YuO
11年前
フォーラム: C言語何でも質問掲示板
トピック: [C#]配列にデータを入れる方法
返信数: 6
閲覧数: 3460

Re: [C#]配列にデータを入れる方法

「本題」と書いてある部分のように、マップのデータ代入の処理が単調でやたら長くなってしまいます 初期化と同時にならいっぺんにデータを突っ込めたような気がしましたが、mapがクラスのメンバ変数であるためそれもできません field[0].map = new map[,] { { Maps.NOTHING, /* ... */ } }; なら可能です。 あとは,長くなるなら 別のファイルに書く ,CSV等から t4 templateで生成する など,「長くならざるをえない部分を別ファイルに分離する」というのも考え方だと思います。 なお,C#というか.NET Frameworkでは定数やEnum値は...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: マクロ関数について
返信数: 7
閲覧数: 2690

Re: マクロ関数について

C/C++において,型は静的に決まらないといけません。
故に,実行時の値によって型を切り替えることはできません。

各型用のコードを用意して,switch等で呼び出しをかえることになります。
# templateで共通化できる可能性もあります。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: レジストリの書き込み
返信数: 4
閲覧数: 2830

Re: レジストリの書き込み

何点か。 レジストリのうち,いくつかのキーは64bit Windows上では32bitプロセスに対してのみリダイレクトされます。 レジストリ リダイレクタ (Windows) WOW64 の影響を受けるレジストリ キー (Windows) 今回は,HKLM\Software\Microsoft\Window\CurrentVersion\Runなので,HKLM\SoftwareへのアクセスとしてHKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Runにリダイレクトされます。 WSAGetLastErrorはWinSock用のエ...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: VC++でのlabelへの入力とクラスの作成のしかた
返信数: 19
閲覧数: 12654

Re: VC++でのlabelへの入力とクラスの作成のしかた

必要が無いなら,C++/CLIでstd::stringやstd::iostreamなどのC++系のライブラリは使わない方がよいでしょう。 Formで使うのはSystem::Stringなので,std::(w)stringなどへの相互変換が必要になります。 std::(w)stringの機能がどうしても必要という状況で無ければ,CLIのライブラリを使うようにしましょう。 # 両方使うと混乱の原因になります。 #include <string.h> using namespace std; class iteminfo{ class HB{ public: String itemname="HB"...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロントの閉じるボタンの無効化のやり方
返信数: 1
閲覧数: 2964

Re: コマンドプロントの閉じるボタンの無効化のやり方

  1. GetConsoleWindowでコンソールのウィンドウハンドルを取得
  2. GetSystemMenuでシステムメニューのメニューハンドルを取得
  3. EnableMenuItemまたはRemoveMenuSC_CLOSEを無効化または削除
という手順でできます。
# EnableMenuItemではシステムメニューの「閉じる」を無効化できなかったが,「閉じるボタン」は無効化された。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: クイックソートを作っているのですが。
返信数: 20
閲覧数: 7086

Re: クイックソートを作っているのですが。

あと何が違うのでしょうか・・・? 途中経過をquicksortの最初で表示するようにする lとrの範囲をわかるようにする sがどれかわかるようにする といったことをすると,問題点が見つかると思います。 # l + 1 == rの時にsとの交換が絶対に行われない。 根本的な話としては,クイックソートになっていないことでしょう。 「数列」を「ピボットより小さい値,ピボット,ピボットより大きいの値」のように並べる。ピボット以外の2区間はこの時点での並び替えは不要 「ピボットより小さい値」を「数列」としてクイックソート 「ピボットより大きい値」を「数列」としてクイックソート というのが,クイックソー...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 連結リストによるスタックの実現
返信数: 5
閲覧数: 4359

Re: 連結リストによるスタックの実現

とりあえず,[E] ~ [H]は何を意図してこう書いたのでしょうか。
これでは連結リストになりません。
ちなみに,[L]の次の行でfreeを使っているのはヒントだと思いますが……。
# ポインタの理解が怪しい?

[J]と[K]もおかしいですが,これについては,「topとは何か」を考えてみるとよいと思います。
# 連結リストをわかっている前提ですが
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 経験したことのない例外が
返信数: 13
閲覧数: 5703

Re: 経験したことのない例外が

場合によっては,例外が起きるライブラリを例外が起きる前提で利用し,例外を捕らえることによってエラーを検知している可能性もあります。 レジストリなども,「キーが開けるかどうかは開いてみないとわからない」ものなので (事前チェックと開くまでの間に状況が変わるかもしれない), とりあえず開いてみて例外が出たら対処する,という方針もあり得ます。 で,この例外はどこまで伝播しているのでしょうか。 フレームワークの中で止まっているのであれば,フレームワーク自身が予期した例外の発生である可能性が高いです。 VSは例外が発生した場合に,処理された例外についても発生をレポートするため,見えているだけかもしれませ...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: VisualStudio2010購入についてのご相談。
返信数: 10
閲覧数: 3925

Re: VisualStudio2010購入についてのご相談。

学生の間,というのであれば,VSに関してはDreamSparkという選択肢もあります。
ただし,商用利用不可やインストール回数に制限がつきますが。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: charの00をプログラムが終了合図だと勘違いしてしまいます。
返信数: 16
閲覧数: 4934

Re: charの00をプログラムが終了合図だと勘違いしてしまいます。

バイナリデータの取り扱い方を勉強する方が先のような気もしますが……。 バイナリデータの長さをデータから汎用的に知る方法はありません。 なので,「バイナリデータの長さを取得する関数」は存在しません。 基本的には,freadで読み込んだサイズだけsendすることになります。 sendは指定したサイズ丁度を送信するとは限らないため,部分的に送信していた場合は残りの部分を送信する,というコードも必要になります。 さらに,一回のfreadで全部を読み込んだとも限らないため,終了を検知するまでfreadする必要もあります。 # Content-Lengthに与える値は,FindFirstFile API等...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: なぜかファイルが存在していないことになっている。
返信数: 8
閲覧数: 3322

Re: なぜかファイルが存在していないことになっている。

helloworld1853 さんが書きました:しかし、普通にアクセスすると
ちゃんと動作しているのに
アプリケーションを介すると
エラー を起こすというのは
不思議です。
本当に同等の動作をしていますか。単にアプリケーション側のバグではないですか。
先のHostもそうですが,通信データに不備があるのではないでしょうか。
例えばIEのF12 開発者ツールのネットワークキャプチャ機能等でPOSTのヘッダを調べて,それと同じ出力ができているか調べる,などはしましたか。

ぱっと見た感じだと,Content-Typeの指定をしていないのは致命傷に思えますが。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: なぜかファイルが存在していないことになっている。
返信数: 8
閲覧数: 3322

Re: なぜかファイルが存在していないことになっている。

細かいことはみていませんが,単に名前ベースの仮想ホストだからではないでしょうか。 nslookup s1.muryo.etowns.net は 名前: muryo.etowns.net Address: 124.96.235.80 Aliases: s1.muryo.etowns.net となりますが, nslookup s2.muryo.etowns.net としても, 名前: muryo.etowns.net Address: 124.96.235.80 Aliases: s2.muryo.etowns.net が得られます。 というわけで,hostフィールドをヘッダに追加すればよいと思い...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++の宿題で・・・
返信数: 6
閲覧数: 3000

Re: C++の宿題で・・・

関数の呼び出しは,「関数名 ( 引数 )」という形をとります。
areatri関数を正しく呼び出す様にする必要があります。
# 関数名だけだと,その関数へのポインタとして扱われます。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 実行中のアプリケーション情報の取得について
返信数: 9
閲覧数: 5362

Re: 実行中のアプリケーション情報の取得について

プロセスやスレッドなどの列挙は,Tool Help Libraryを使うのが基本です。
ただし,スレッドの開始アドレスはこの方法では取得できないようです。

WMIを探すと,Win32_thread classがあって,ここにはStartAddressというメンバがあります。
ただし,型がint_ptrのような記述では無くuint32と書かれているため,x64環境で正しく取得できるのか疑問がありますが。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 中括弧の終わりを打った時に自動的にカーソルを合わせてくれる機能の名前
返信数: 3
閲覧数: 1741

Re: 中括弧の終わりを打った時に自動的にカーソルを合わせてくれる機能の名前

EmEditorの場合,自動インデントという名前です。

[ツール] - [現在の設定のプロパティ] / [基本]タブ - [タブ/インデント]で設定します。
標準では[ツール] - [設定の選択] - [JavaScript]で自動インデントは有効になりますが……。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: ファイルの入出力
返信数: 12
閲覧数: 2948

Re: ファイルの入出力

文字の比較は,単純に==や!=などで可能です。


ところで,質問の内容とタイトルが一致していません。
この内容だと,「文字の比較方法」等の方が適切です。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: ウィンドウズメッセージの競合?を解消したい。
返信数: 4
閲覧数: 1909

Re: ウィンドウズメッセージの競合?を解消したい。

WM_LBUTTONDOWNはLPARAMに左ボタンを押したクライアント座標が入りますから,それを元に再生させたい場所かどうかを判定して,
再生させたい場所であればWM_NCLBUTTONDOWNを送らないようにしてみてはどうでしょうか。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 16進数を変数に入れる
返信数: 13
閲覧数: 5286

Re: 16進数を変数に入れる

真にやりたいことが

コード:

  if(checksum == 0x5c){
であるようにしか思えないのは私だけでしょうか……。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 排他処理のロジックについてアイディアを相談させてください
返信数: 4
閲覧数: 1757

Re: 排他処理のロジックについてアイディアを相談させてください

readers/writer lock パターンが使えると思います。 CStringという名前からWindows系を想定しますが,Windows Vista以降であればSlim Reader/Writer LocksというAPI群があります。 Slim Reader/Writer (SRW) Locks (Windows) 初期化は InitializeSRWLock function 読み取りは AcquireSRWLockShared function と ReleaseSRWLockShared function 書き込みは AcquireSRWLockExclusive functi...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: C++でレジストリーを操る。
返信数: 17
閲覧数: 7244

Re: C++でレジストリーを操る。

レジストリの設定が間違っている気がしますが……。 手元のWindows 7環境では, \HKEY_CURRENT_USER\Control Panel\Desktop\WallpaperStyle はキーではなく値で,REG_SZ型になっています。 しかし,コードを見ると,キーを作ろうとしていますし,さらにREG_DWORD型の既定値を書き込もうとしています。 実際のレジストリを見ながら,このあたりを修正してみてはどうでしょうか。 あと,参考までに。 http://code.msdn.microsoft.com/windowsdesktop/CppSetDesktopWallpaper-eb9...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: コンパイラの対応している規格
返信数: 14
閲覧数: 9521

Re: コンパイラの対応している規格

調べてみると定義されているかどうかでC++か判断するのに使うものみたいなので 定義されている値が規格の日付?とは限らないみたいですね。 また、C++の標準仕様でなくコンパイラによってないものもあるみたいなので 絶対にこれでわかるというわけでもないのですね。 __cplusplusはC++の標準の仕様です。さらに,先の値は標準に定義されている値です。 ISO/IEC 14882:1998 16 Preprocessing directives / 16.8 Predefined macro names / Paragraph 1 __cplusplus The name __cplusplus...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: コンパイラの対応している規格
返信数: 14
閲覧数: 9521

Re: コンパイラの対応している規格

C++に関して,規格上では__cplusplusで確認することができます。 199711L : ISO/IEC 14882:1998またはISO/IEC 14882:2003に準拠 201103L : ISO/IEC 14882:2011に準拠 VC++ 2010は/Zaや/Zcオプションにかかわらず199711Lを返します。 なお,VC++ 2010の場合,/Zaを付けても__STDC_VERSION__は定義されません。また,C++モードでは,/Zaを付けても__STDC__は定義されません。 また,VC++ 2010のC++コンパイラの非標準事項については, Nonstandard Be...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 図形の回転について
返信数: 4
閲覧数: 3208

Re: 図形の回転について

私は使ったことがないですが,GDIにもSetWorldTransformという変換行列をDCに指定するAPIがあったりします。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: send関数の送信サイズ
返信数: 13
閲覧数: 8300

Re: send関数の送信サイズ

送受信段階での”データの区切り”は求めてはいます。ただし、送受信量が一致するという原則が”区切り”となるものでTCP/IPに特段の機能を期待しているわけではありません。 えーっと,TCP/IPというもの自体を勉強したのでしょうか……。 TCP/IPをよく知らない人がよくある間違いに陥っているように思います。 # プロトコル自体を学ぶ必要はないですが,特性についての勉強はしないといけません。 ”Nagleアルゴリズム云々の前に,TCPを使う以上,送信データサイズと受信データサイズに関しては,合計値が一致する以上の期待は寄せられません。” これで十分です。 1回のsend関数による送信量と受信側...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: send関数の送信サイズ
返信数: 13
閲覧数: 8300

Re: send関数の送信サイズ

 時間短縮になると思われる2を採用しようと思っているのですが、この措置は妥当でしょうか?。Nagle Algorithmが元凶、これの排除ですべて解決とはいかないことが腑に落ちません。 Nagleアルゴリズム云々の前に,TCPを使う以上,送信データサイズと受信データサイズに関しては,合計値が一致する以上の期待は寄せられません。 受信側に空きがあれば,送信バッファのデータの一部分を送信する,というのも許されます。 前回も書いたのですが,TCPはデータの区切りが保持されるプロトコルではありません。 故に,データの区切りはアプリケーション側が用意する必要があります。 スレッド中に,何度もパケット分...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 関数へのポインタ
返信数: 5
閲覧数: 2418

Re: 関数へのポインタ

最近プログラミングの勉強を始めて、「猫でもわかるC言語プログラミング」という本に従って勉強しているんですが、ちょっとわからないところが出てきたので教えて頂けるとありがたいです。 Cなので,拡張子は.cppではなく.cで書きましょう。 ちょうど,C++とCの非互換の部分でひっかかっています。 小題は「関数へのポインタ」で、以下のように打ち込みました。 ちゃんとcodeタグで囲みましょう。詳しくは,投稿フォームの上にあるフォーラムルールの項目を参照。 int func(int); int (*ptr1)(), (*ptr2)(); ptr1 = main; ptr2 = func; funcは引...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: デスクトップのカスタマイズによる、アプリのレイアウト崩れを防ぐ方法
返信数: 2
閲覧数: 6912

Re: デスクトップのカスタマイズによる、アプリのレイアウト崩れを防ぐ方法

とりあえず,MSの公式ペーパーが出ています。
高 DPI 対応の Win32 アプリケーションを記述する

上記を読む限り,自前で修正する必要があるようです。

----
2012-03-08T16:23+09:00 誤字修正 (条軌→上記)
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: 分割コンパイルの際の二重定義について
返信数: 9
閲覧数: 4603

Re: 分割コンパイルの際の二重定義について

インクルードガードは,同一の翻訳単位の中でのみ有効です。
翻訳単位というのは,正確さを犠牲に簡単に説明するなら.c/cppファイルひとつのことです。

ヘッダファイル中では

コード:

extern int dgx;
のように記述し,どこか一つの翻訳単位のみで

コード:

int dgx;
と書く必要があります。
# そもそもグローバル変数とする必要があるのか検証は必要ですが。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: C2662エラーについて
返信数: 19
閲覧数: 8222

Re: C2662エラーについて

例外が発生した場合の処理はユーザーに任せるという意味でしょうか。 恐らく違うように考えていると思います。 ライブラリを使っている人,つまりはライブラリのユーザーに処理を任せます。 その結果,プロダクトのユーザーにMessageBoxで通知されるかもしれませんし,プログラムの内部で吸収されて処理されるかもしれません。 現在は「ライブラリの作成者」==「ライブラリのユーザー」なのだとは思いますが,この2つの立場は分けて考えた方がよいです。 本家vectorはどのような挙動でしたっけ? 範囲外アクセスが発生した旨が通知されてプログラムが終了したと思うのですが。 プログラムが終了する,というのはst...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: C2662エラーについて
返信数: 19
閲覧数: 8222

Re: C2662エラーについて

配置newの場合はdeleteする必要は無いという理解でよいのでしょうか? delete してはいけません デストラクタは 明示的に呼び出さなければなりません 例外処理についてなのですが。 >>ユーザーへの通知は最終的なプロダクトを作成する側の役割です。 >>ライブラリが勝手にユーザーへ通知するのは,たいていの場合使いにくくなるだけです。 では何も言わずに強制終了させた方が良いのでしょうか? 今回の場合,必要なのは呼び出し元にエラーを通知することです。 方法は例外だったり,戻り値だったり,グローバル変数又はそれに類するものだったりしますが。 # 今回は例外がおそらく妥当。 強制終了などの重要...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: send関数の送信サイズ
返信数: 13
閲覧数: 8300

Re: send関数の送信サイズ

根本的な話ですが,受信側のプログラムで問題が発生している (データが消失する等) のですか。 それとも,Socketよりも下の層を調べていたら「問題が発生していた」のですか。 # 個人的には後者であれば,Socket層でのプログラムに影響があった場合を除いて無視しますが。 普通に考えたら,MSS値より小さなデータのsendはNagleアルゴリズムの餌食だと思いますが。 受信時に送信時のデータの区切りをそのまま使いたいのであればTCP/IPは向きません。 どうもそういうことをやろうとしているように見えます。 # Nagleアルゴリズムの遅延はRFC上は500ms,実装上は200msまで許容される...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: C2662エラーについて
返信数: 19
閲覧数: 8222

Re: C2662エラーについて

例外処理を書いているときに疑問がわいてきたのですが、 abort()関数で強制終了させた場合にメモリ領域は解放されるのでしょうか? 標準規格の範囲外です。 現実的には,外部環境が勝手に回収すると思いますが。 よくわからなかったので、とりあえず範囲外アクセスが発生した旨を伝えるメッセージボックスを表示させるだけにしておきました。 とりあえずの対応であればよいですが,ユーザーへの通知は最終的なプロダクトを作成する側の役割です。 ライブラリが勝手にユーザーへ通知するのは,たいていの場合使いにくくなるだけです。 容量を増やす処理は、ご覧の通り配置newを使わずに書きましたがこれでは駄目なのでしょうか...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: C2662エラーについて
返信数: 19
閲覧数: 8222

Re: C2662エラーについて

自覚があるのは、おかしな場所でdeleteしている点です。 「ユーザー視点において確保された容量」を超える要素にアクセスしてしまう事態が起こった場合は、範囲外アクセスエラーを出すべきだと思うわけですが、内部では「ユーザー視点において確保された容量」よりも多めに容量が確保されている状態であり、ほとんどの場合、自動で範囲外アクセスエラーが出ません。そこで、そのような事態が起こった場合は、確保した容量をdeleteしてしまうことによって強制的に範囲外アクセスエラーが出るようにしています。やはりtry~catch文を書いたほうがよいのでしょうか? >>atでデータ構造が壊れる可能性がある デリートし...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: C2662エラーについて
返信数: 19
閲覧数: 8222

Re: C2662エラーについて

const型のオブジェクトに対しては,constとされた関数しか呼び出せません。 「呼び出し元の関数がconst」ではなく,「呼び出す関数がconst」です。 今回の最初のエラーについていうならば,25行目の uint size(){ return Size; } が uint size() const { return Size; } でないといけません。そして,93行目の fw::vector<X> & add(const fw::vector<X> & input) const { は,constである必要はありません。それどころか,addはオブジェクトの状態を変更する操作ですからcon...
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: system関数の変数指定
返信数: 3
閲覧数: 1741

Re: system関数の変数指定

インベントリ さんが書きました:ここからが質問なのですが、上のコード内の「C:\\test.exe」の部分を変数で指定するようにするにはどうしたらいいのでしょうか?
APIにはPathQuoteSpacesというものがありますが,それを呼び出すまでもなく,

コード:

String^ strfn = String::Format("\"{0}\"", dlg->FileName);
と,単純に"で囲うだけで十分でしょう。

C++/CLIなので,System::Dialognostics::Process::Startで処理すれば,C文字列への変換も,文字列を囲む処理も不要になりますが……。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: マクロ名を画面に描画
返信数: 6
閲覧数: 1728

Re: マクロ名を画面に描画

マクロ名自体はコンパイル時に消えるので,そのままではマクロ名を使うことは出来ません。

なので,マクロ名を表示しようとするならば,

コード:

struct MacroNames
{
    int value;
    const char * name;
};
const MacroNames[] macroNames =
{
#define VAL(v) { (v), #v }
VAL(KEY_INPUT_UP),
VAL(KEY_INPUT_LEFT),
/* ... */
#undef VAL
};
のような対応表を用意して,探索をかける必要があります。
by YuO
12年前
フォーラム: C言語何でも質問掲示板
トピック: .NETのwebbrowserで一度に2つのアカウントにログイン
返信数: 7
閲覧数: 8794

Re: .NETのwebbrowserで一度に2つのアカウントにログイン

あまりこの手のことについては詳しくないのですが、セッションcookieとは今ログインしているユーザーの情報を管理しているものと考えてよろしいでしょうか? ユーザーのログイン状態をセッションCookieで行っているか永続化Cookieで行うかは,サイトに依存します。 永続化Cookieとは有効期限の指定された (Set-Cookieフィールドがレスポンスで返されるときにexpiresが指定された) Cookieであり,その有効期限までの間,ブラウザは対象サイトにCookieを送信します。 セッションCookieとは有効期限の指定されていない (Set-Cookieフィールドがレスポンスで返され...

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