プログラミング

C++_std::vector の初期化

初期化方法を意識していなかった。std::vector hh (5) の記述で初期化方法知った。※ 宣言のみだと要素数 0 なので push_back などで追加。 要素数を指定した宣言 動的配列はサイズを増減させることが出来るが、データ領域の確保・破棄とデータのコピー処理を…

論理演算の使い道メモ

左シフトやら右シフトすれば bit 変換 ( 記事最後のヤツ ) できるのか疑問だったので調べた。コピペ。 ビット数が違うデータ同士の計算 10 bit と 12 bit で出力された同値の数を int 型変数 16 bit に入れると、以下のようになる。|| は論理和ではなくただ…

C++_ C4819:ファイルは現在のコードページ(932)で表示できない文字を含んでいます

「C4819:ファイルは現在のコードページ(932)で表示できない文字を含んでいます。ファイルをUnicode形式で保存してください」とエラー。 エラーが出たファイルの文字コードは utf-8 ( 65001 ) 。932 は shift_jis 。utf-8 でも BOM がないと C4819 エラーが発…

剰余の使い道

どんな時に使えばいいか分からなかったので。例コピペ。負の剰余は注意が必要らしい。 あまり。剰余。% 。mod ( modulo の略 )。被除数 / 除数 = 商 … 剰余9 / 2 = 4 … 1 商 × 除数 + 剰余 = 被除数4 * 2 + 1 = 9 除算によって「割り切れない」部分を表わ…

アラインメント ( 追記 )

境界をまたぐ、アクセス回数など意味分からないので。 アラインメントは CPU のハードウェアに起因する問題であり、データのメモリアドレスに関する制約。C/C++ ( そしてアセンブラ ) でそれが問題となる理由は、データのメモリアドレスがプログラマに操作で…

C++_構造体のパディング と アラインメント

パディング:詰め物。水増し。 多くのコンパイラは、データを 2 バイト単位で揃えようとする。 これは多くの CPU が「奇数番地から始まるデータより、偶数番地から始まるデータの方が効率的に扱える」ようになっているため。 そのため char 型配列の要素が奇…

C#_ LockBits と UnlockBits メモ 02

メモ 01 の関数やプロパティ調べ。 LockBits ( Rectangle, ImageLockMode, PixelFormat ) Rectangle:ロックする部分を指定する Rectangle 構造体。 ImageLockMode:アクセスレベル ( 読み取り / 書き込み ) を指定する ImageLockMode 列挙体。ex ) ReadOnly…

C#_ LockBits と UnlockBits メモ 01

画像を扱う時に LockBits を使った方がいいらしい。ポインタに展開されている画像データを配列に入れて、変更して再度ポインタに戻す的な。 LockBits :Bitmap をシステムメモリにロックする。UnlockBits:システムメモリから Bitmap のロックを解除する。 -…

C++_PictureBox.Image に代入しスクロールをすると赤バツ の続き

C++ でもらった Bitmap^ を PictureBox.Image に代入しスクロールをすると赤バツ の続き。 cv::Ptr<IplImage> ipImag が、System::Drawing::Bitmap^ bmp = gcnew の時は生きているがスコープ抜けると解放されるのが原因。多分。浅いコピーだろうから深いコピーにしたか</iplimage>…

C#_C++ からもらった Bitmap^ を PictureBox.Image に代入しスクロールをすると赤バツ

OpenCV_画像を IplImage型 で読み込んで System::Drawing::Bitmap^ に変換 の続き。 Debug で動かしてたが、ネイティブコードのデバッグを有効にしていなかった。有効にすると下記のエラー。 Application.Run(new FormMain());読み取り中にアクセス違反が発…

C#_ PictureBox.Image のロック

赤バツに関係あるかと思ったがなさげ。 PictureBox1.Image = System.Drawing.Image.FromFile(@"./\test.bmp"); この方法で表示した画像ファイルはロックされ、削除できなくなる。Image プロパティで画像を表示している間は、その画像の削除・名前変更・上書…

画像のビット Memo

よく分からなくなった。 ビット深度 1 ピクセルに割り当てるデータ量のこと。 ex )「 24 bit 」は 1 ピクセル当たり 24 bit 割り当てられているという意味。単位は bpp ( bits per pixel ) 。1 ピクセル当たり 24 bit = 24 bpp 色空間によって割り当て方が…

画像のフォーマット・変換メモ一覧

↑ 投稿日付 new

コマンドライン引数とは

プログラム起動の際に渡されるパラメータの値。Main 関数の引数としてプログラムに渡される。コマンドライン引数は、 CUI アプリケーションだけでなく GUI アプリケーションでも利用することができる。 ex )・SMPL.XE を作成。・コマンドラインから以下のコ…

C#_フォルダを指定してファイル名を取得

Directory.GetFiles とか覚えられん。 ※ デザインから folderBrowserDialog 設置済み if (folderBrowserDialog.ShowDialog() != DialogResult.OK) { return; } string folderPath = folderBrowserDialog.SelectedPath; string[ ] getFiles = Directory.GetFi…

コンテキストとは

C# での実行コンテキスト調べたかったが重い。そしてよく分からない。 文脈・前後関係・状況。利用者の意図や状況、環境などの総体を表したり、同じ処理や記述でも状況に応じて動作などが異なる場合に、その選択基準となる条件などを指す場合が多い。ex )マ…

C++/CLI_ C# System::String^ を std:string に変換

msclr::interop::marshal_as<変換したい型> を使う。マーシャリング:システムやプログラミング言語の間でデータをやり取りできるようにするための処理。 // #include <msclr/marshal_cppstd.h> System::String^ hoge = gcnew System::String("Hoge"); std::string getStr = msclr::i</msclr/marshal_cppstd.h>…

C++/CLI_ C# のプロパティ機能を C++/CLI で使う

自作型をコンボボックスに表示したC# のコードを C++/CLI でも実現したい。メモ 03 --経緯--Displaymember と Valuemember を使う方法は C++/CLI では使えない ?getter setter のプロパティで書かないと使えないのか ?だが色々調べてたら property が出てき…

C++/CLI_ '自作クラス': 定義されていない識別子です

自作型をコンボボックスに表示したC# のコードを C++/CLI でも実現したい。メモ 02 C# だと自作クラスを、呼び出すクラス ( Form1 ) の後に書こうが前に書こうが動いたのでハマった。しっかりドキュメントに書いてあったのに。 変数の型は、変数が使われる前…

C++/CLI_DisplayMember がきかない

自作型をコンボボックスに表示したC# のコードを C++/CLI でも実現したい。メモ 01 結論から C# で書いたのを C++/CLI で書く時に、 setter・getter を外してしまった。 public int Hoge { get; set; } → public int Hoge;プロパティとフィールドでは全く異…

C#_DisplayMember と ValueMember

「セレクトボックスに自作の Value と Key を設定したい」記事のソース解読。 DisplayMember コントロールに表示するプロパティを取得・設定する。既定値は空文字。 表示項目を ToString でなく、あるプロパティが返す値を表示したいのであれば、そのプロパ…

C#_セレクトボックスに自作の Value と Key を設定したい

DisplayMember と ValueMember をつかうもよう。 経緯 セレクトボックス ( コンボボックス ) の SelectedIndex は上から自動で採番されるので、Value に応じた値が欲しい。Memo:コンボボックスは文字を直接入力することが出来る。 ex) ※同じファイルに記述…

C#_オーバーライド virtual と override

基底クラスのメンバが隠蔽されている場合、どのメンバが呼び出されるかは変数の型 ( 静的な型 ) によって決定する。 だが、ほとんどの場合メソッドの呼び出しは動的に決定した方が都合がいい。動的な型 に基づいて呼び出されるメソッドを選びたい場合の記述…

C#_基底クラスの隠蔽

派生クラスで、基底クラスの public メンバと同名のメンバを再定義すると基底クラスのメンバが新しく追加されたメンバに隠れる。 派生クラスで基底クラスと同じシグネチャのメンバを宣言することを「基底クラスのメンバを隠蔽する」という。 基底クラスのメ…

C#_継承 と オーバーライド のMemo コード

virtual と override の使い方が分かっていなかった…。多態性とごっちゃになっていた。オーバーライドは親メソッドが上書きされる。多態性はオブジェクトが複数の型に属することを許す性質。 親クラス class BaseHoge { public BaseHoge() { Console.WriteLi…

C++_ポインタと配列の一覧

↑ が投稿日付 new

C++_std::copy 追加

勘違いしていた。引数に指定した分がコピーされるのではなく、-1 されてコピーされる。故に第二引数は、コピーしたい範囲の + 1 とする。 std::copy ( InputIt first, InputIt last, OutputIt d_first ); first, last コピーする要素の範囲。 d_first コピー…

C++_std::copy

コピペ。 std::copy ( InputIterator first, InputIterator last, OutputIterator result );指定された範囲の要素をコピー。 result は [ first, last ) の範囲に含まれてはならない。[ first, last ) 内の要素を、それぞれ [ result, result + (last - firs…

C++_イテレータ ( iterator ) とは

std::copy で出てきたので。一応前に調べていた…。一応 C++ 配列を調べたので少し理解できるようになったかも。ただのコピペ。 抽象化されたポインタのことで、コンテナの要素を指し、移動や要素を参照・変更することが出来る。配列やコンテナのような範囲を…

C++_shared_ptr とは

ただのコピペ。スマートポインタの一種。メモ程度。しっかり理解はしていない。cv::Ptr<T> が知りたかった。cv::Ptr<T> は shared_ptr と同様のもの。 あるメモリの所有権を持つ unique_ptr<T> がただ一つに限られていたのに対し、shared_ptr<T> は同一のメモリの所有権</t></t></t></t>…