検索結果 939 件

by YuO
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++ FindFirstFileの使い方
返信数: 2
閲覧数: 2829

Re: C++ FindFirstFileの使い方

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

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: エディットで自動ポップアップを無効化したい
返信数: 8
閲覧数: 1111

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: バイナリコード変換時の処理に改行コードを含めて処理をしたいのですが
返信数: 10
閲覧数: 2818

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: C++ , C# , Javeの違いについて
返信数: 16
閲覧数: 4293

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: これははたして信頼してよいのか
返信数: 6
閲覧数: 584

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

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

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

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

Re: visual studio

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

Re: scanfについて

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: Visual C++ 2010 Expressの設定初期化
返信数: 5
閲覧数: 1966

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: C#で簡単に実現可能が、C++11は実現できない機能、、、
返信数: 10
閲覧数: 2071

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談] Windows8について~
返信数: 15
閲覧数: 2637

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: [雑談] Windows8について~
返信数: 15
閲覧数: 2637

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: XPathを使うべきか それともDOM?
返信数: 9
閲覧数: 2957

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: XPathを使うべきか それともDOM?
返信数: 9
閲覧数: 2957

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

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

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

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

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: ユーザ名変更後にGetUserName()で新しいユーザ名が取得できない
返信数: 2
閲覧数: 973

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

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

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

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

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

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: オブジェクト指向プログラミングについて その2
返信数: 5
閲覧数: 1116

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: C#の質問です
返信数: 13
閲覧数: 3720

Re: C#の質問です

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

Re: C#の質問です

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: 変分ベイズ推定のプログラムなのですが・・・
返信数: 1
閲覧数: 1284

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

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

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: 実行結果コピー
返信数: 2
閲覧数: 553

Re: 実行結果コピー

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

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

コード:

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

Re: dropdownlistについて

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

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

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

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

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

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: c++を使ったプログラミング!できる方いませんか??
返信数: 51
閲覧数: 3316

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: C#でForm1からForm2を開き・・・
返信数: 4
閲覧数: 1876

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

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

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

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

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

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

コード:

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: プロパティに値が入りません
返信数: 3
閲覧数: 255

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

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

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

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

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: Microsoft Visual C++2010で作成したプログラムのエラーについて
返信数: 12
閲覧数: 1277

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

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

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

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

----

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

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

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

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

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

Re: マクロ関数について

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

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

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: VC++でのlabelへの入力とクラスの作成のしかた
返信数: 19
閲覧数: 6444

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
7年前
フォーラム: C言語何でも質問掲示板
トピック: コマンドプロントの閉じるボタンの無効化のやり方
返信数: 1
閲覧数: 1138

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++の宿題で・・・
返信数: 6
閲覧数: 1464

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

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

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

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

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

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

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

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

Re: ファイルの入出力

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


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

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

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

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

真にやりたいことが

コード:

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

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
8年前
フォーラム: C言語何でも質問掲示板
トピック: C++でレジストリーを操る。
返信数: 17
閲覧数: 3724

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
8年前
フォーラム: C言語何でも質問掲示板
トピック: コンパイラの対応している規格
返信数: 14
閲覧数: 4372

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
8年前
フォーラム: C言語何でも質問掲示板
トピック: コンパイラの対応している規格
返信数: 14
閲覧数: 4372

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
8年前
フォーラム: C言語何でも質問掲示板
トピック: 図形の回転について
返信数: 4
閲覧数: 1876

Re: 図形の回転について

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

Re: send関数の送信サイズ

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

Re: send関数の送信サイズ

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

Re: 関数へのポインタ

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

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

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

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

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

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

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

ヘッダファイル中では

コード:

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

コード:

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

Re: C2662エラーについて

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

Re: C2662エラーについて

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

Re: send関数の送信サイズ

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

Re: C2662エラーについて

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

Re: C2662エラーについて

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

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
8年前
フォーラム: C言語何でも質問掲示板
トピック: system関数の変数指定
返信数: 3
閲覧数: 969

Re: system関数の変数指定

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

コード:

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

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

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
8年前
フォーラム: C言語何でも質問掲示板
トピック: .NETのwebbrowserで一度に2つのアカウントにログイン
返信数: 7
閲覧数: 6530

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

あまりこの手のことについては詳しくないのですが、セッションcookieとは今ログインしているユーザーの情報を管理しているものと考えてよろしいでしょうか? ユーザーのログイン状態をセッションCookieで行っているか永続化Cookieで行うかは,サイトに依存します。 永続化Cookieとは有効期限の指定された (Set-Cookieフィールドがレスポンスで返されるときにexpiresが指定された) Cookieであり,その有効期限までの間,ブラウザは対象サイトにCookieを送信します。 セッションCookieとは有効期限の指定されていない (Set-Cookieフィールドがレスポンスで返され...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: error C2061 構文エラー
返信数: 3
閲覧数: 8923

Re: error C2061 構文エラー

"GameMode.h"または"BulletAll.h"から,直接または間接に"Enemy.h"をインクルードしていませんか。 たとえば,"GameMode.h"が",単純化して #pragma once #include "Enemy.h" だったとすると, #include "Player.h" は,本来の順序と逆でコメントを残しプリプロセッサを展開すると, /* ** 継承用クラス ** キャラや敵などに継承させる。 ** */ class c_Base{ public: enum{ TURN_LEFT, TURN_RIGHT, }; int mImg; int mTime; int m...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: (WINAPI)Midiシーケンサの製作(基本機能のみ)
返信数: 43
閲覧数: 4344

Re: (WINAPI)Midiシーケンサの製作(基本機能のみ)

softya(ソフト屋) さんが書きました:
KEYONN さんが書きました:あと、テーブル登録が主目的なので、N.RegistTableが一番分かりやすい関数名でしょうか。
一番かどうかはわかりませんが、Searchよりもすごく良いことは確かです。
せめてRegisterTableに……。
# register 【自動】 登録する
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: TwitterのOAuth情報漏洩の影響は?
返信数: 4
閲覧数: 1131

Re: TwitterのOAuth情報漏洩の影響は?

・consumer_key、consumer_secretのみ漏れた場合 ・oauth_token、oauth_token_secretのみ漏れた場合 ・両方漏れた場合 に場合分けして、それぞれどのような影響が出るか教えていただけますか? consumer_key、consumer_secretのみ漏れた場合 あなたを騙ってアプリケーションを作ることが可能になります。つまり,ユーザーがOAuthの認証で許可してしまった場合,あなたのアプリケーションとして扱われてしまいます。 直接的には問題ないようにも思えますが,有名なアプリケーションのkey/secretが漏れた場合,元のアプリケーションに...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: TwitterのOAuth情報漏洩の影響は?
返信数: 4
閲覧数: 1131

Re: TwitterのOAuth情報漏洩の影響は?

ところで、このコードには、とりあえずテスト用ということで、 consumer_keyとconsumer_secretが平文で書き込まれています。 認証後、oauth_tokenとoauth_token_secretもファイルに平文で書き込みます。 そこで、もし、これらの情報がウィルスや操作ミスなどで外部に漏れてしまった場合の影響が気になりました。 これらの情報が漏れると、アカウントが乗っ取られたりするのでしょうか? アカウントの乗っ取りは無理です。ただし, POST account/settings POST account/update_profile POST account/updat...
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C#におけるオブジェクトプールについて
返信数: 9
閲覧数: 1781

Re: C#におけるオブジェクトプールについて

うーん,T4テンプレートが使えれば解決するのかな……。
by YuO
8年前
フォーラム: C言語何でも質問掲示板
トピック: C#におけるオブジェクトプールについて
返信数: 9
閲覧数: 1781

Re: C#におけるオブジェクトプールについて

まず,根本的なGCを潰す,という点について。 可能ならば構造体の使用も考えてみるとよいかもしれません。 使い方を間違えなければ,構造体はGCの対象ではないため,GCを引き起こすこともありません。 # 構造体の配列はクラス,しかも大きなクラスになることに注意。 まぁ,Xbox360とPC/Windows PhoneではGCの方式が異なるので,その差も考慮する必要がありますが……。 第6回 .NETアプリを軽快にするためのガベージ・コレクション講座 ( Nyaruru 氏の記事)なども参考になるかと思います。 # なお,ボクシングの問題は, boxing チェッカー - NyaRuRuの日記 にあ...

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