nprogram’s blog

気ままに、プログラミングのトピックについて書いていきます

C#の勉強サイトまとめ

codezine.jp [C# / WPF] 最新のC# 6.0でMVVMパターンを実装する qiita.com ちゃんとした C# プログラムを書けるようになる実践的な方法~ Visual Studio を使った 高品質・低コスト・保守性の高い開発 ちゃんとした C# プログラムを書けるようになる実践的な…

C#からC++のDLLを呼び出す (構造体編) [C#]

C#

はじめに 以下の場合も、実現可能です。 C++のDLLのAPIに対して、構造体のデータを渡す場合 C++のDLLのAPIから、構造体のデータを受け取る場合 環境 IDE : Visual Studio Community 2017 (Version 15.7.1) コード #include <string> #ifdef __cplusplus #define DLLE</string>…

C#からC++のDLLを呼び出す [C#]

C#

はじめに 過去に作成したC++の関数(API)をC#から呼び出したい場合があると思います。 その場合は、C++のプロジェクトをDLLにして、C#からAPIを呼び出すことが可能です。 ただし、C#(マネージ・コード)の変数とC++(アンマネージ・コード)の変数は、 メモ…

Google TestをVisual Studio 2017で簡単導入 [C++]

C++

はじめに Visual Studio 2017を使えば、Google Testを用いたプロジェクトが割と簡単に作成できます。 なお、現状は、C++のプロジェクトでのみ適用可能です。C#は不可 (泣)。 実現例 (プロジェクトテンプレートからGoogle Testプロジェクトを作成可能) 環境 V…

MFCでBitmapファイルを開く(BITMAPINFOHEADER, BITMAPINFOHEADERを取得) [C++][MFC]

C++

はじめに MFCでBitmapファイルを開く方法を下記に記載します。 <使用例> ソースコードファイルの記載は以下のとおりです。クラスではなく、ユーティリティ関数として作成しました。 [BitmapUtil.cpp] #include "stdafx.h" #include "BitmapUtil.h" bool Load…

WPFで画面遷移させよう [C#][WPF]

C#

はじめに 以下のサイトがおすすめです。 参考サイト sourcechord.hatenablog.com WPFサンプル:Hyperlink http://gushwell.ldblog.jp/archives/52279481.html

ルーティングイベントの学習 [C#][WPF]

C#

ルーティングイベントとは 観点を機能に置いた場合、イベントを生成したオブジェクト上だけでなく、要素ツリー内の複数のリスナー上でハンドラーを呼び出すことができる種類のイベント 観点を実装に置いた場合、ルーティング イベントは、RoutedEvent クラス…

WPFの依存関係プロパティが難しいので、学習中 [C#][WPF]

C#

以下のページが参考になりそう。 DependencyProperty(依存関係プロパティ) tawamuredays.blog.fc2.com garafu.blogspot.jp

WPFで、自作イベントの作り方 [C#][WPF]

C#

はじめに WPFで、自作イベントを作成する方法を調べてみました。 参考サイト 以下のサイトを参考にさせていただきました。 方法 : カスタム ルーティング イベントを作成する https://docs.microsoft.com/ja-jp/dotnet/framework/wpf/advanced/how-to-create…

WPFで簡単なUserControlの作り方 [C#][WPF]

C#

UserControlは便利 繰り返し使用するUI部品は、UserControlにして何度も使用できるようにしたほうが便利です。 例えば、MainWindow.xamlを以下のように記載した場合、同じような表記が繰り返し発生します。 これをUserControlに置き換えます。

Visual Studioの便利なショートカットまとめ

Visual Studioのショートカットを覚えると、プログラミング時にとても便利です。 特に便利だと思ったのが、コードリーディング時に使用する ・定義へ飛んだ後、戻るときはCtrl + - qiita.com あと、コードスニペットも便利です。 C#のWPFで、依存関係プロパ…

Visual Studio 2017のプロジェクト テンプレートで、簡単プロジェクトひな形作成

はじめに MVVMを意識したWPFのプロジェクトを作成するのは結構大変です。もともとVisual Studioのプロジェクトで用意されているWPFプロジェクトは、MVVMを意識したプロジェクトになっていないためです。(´;ω;`) そこで、自分で、プロジェクトのテンプレート…

ReactivePropertyが便利すぎてとても助かる [C#][WPF]

C#

ReactivePropertyの使い方を学習していきます 画面 コード [MainWindowViewModel.cs] using Reactive.Bindings; using System; using System.Linq; using System.Reactive.Linq; namespace ReactivePropertySample { class MainWindowViewModel { public Rea…

WPF/C#/MVVM/Prismで、簡単なWPFアプリケーションを作ります [C#][WPF]

C#

WPF/C#/Prismで、簡単なWPFアプリケーションを作ります 以下のサイトにも記載があるように、WPFアプリケーションでMVVMのアプリケーションを作成するのは難しいと思います。 そのため、PrismというMVVM基盤ライブラリを使用します。 qiita.com 本アプリケー…

Google Test導入方法 [VS2017] [Cmake] [C++]

環境について 以下の環境で、Google Testを使用してみます。 Windows 10 Visual Studio 2017 Community Cmake 3.10.2 C++ なお、Visual Studio 2017 バージョン 15.5 以降では、Google Test が C++ ワークロードでのデスクトップ開発の既定のコンポーネント…

UIスレッド以外から、UIスレッドのコレクションにアクセスする方法 [C#]

C#

UIスレッド以外から、UIスレッドのコレクションにアクセスすると、エラーとなり、アクセスできない問題が発生します。 以下のサイトに、問題解決方法が記載してありました。 blog.okazuki.jp sourcechord.hatenablog.com

WPFで登録と削除が可能なリストを作成します [C#][WPF]

C#

はじめに ObservableCollectionを使用して、登録と削除が可能なリストを持つアプリを作成します。 アプリの見た目 アプリには、登録、削除、全削除ボタンがあります。 名前と連絡先に文字列を入れて登録ボタンを押すと、データが登録されます。 リストの項目…

WPFでGridコントロール [C#][WPF]

C#

Gridコントロール Gridコントロールを使えば、コントロールの配置を簡単に決めることできます。 3行、3列のGridを作成する場合は以下のように指定します。

ObservableCollectionを使用した簡単なバインディング [C#][WPF]

C#

ObservableCollectionを使用すれば、簡単にバインディングを実現できます。 以下のサイトを参考にさせていただきました。 www.youtube.com 実行結果 コード [Palyer.cs] namespace WpfApp3 { public class Player { public int Id { get; set; } public stri…

WPF コレクションのデータバインディングを学習します [C#][WPF]

C#

以下のページを参考にして、WPFのコレクションのデータバインディングを学習していきます。 http://technical.live-on.net/archives/1987 inuinuwanwanilovecat.seesaa.net

WPF ICommand学習 [C#][WPF]

C#

よいページが見つかったので、紹介させていただきたいと思います。 WPFサンプル:ICommand インターフーイスを実装してカスタムコマンドを作成する http://gushwell.ldblog.jp/archives/52321430.html yoshinorin.net

INotifyPropertyChangedを使った簡単なWPFサンプル例 (MVVMパターンに修正) [C#][WPF]

C#

サンプル説明 前回のコードをMVVMに直します。アプリ表示は、同一になります。 プロジェクト構成では、前回と比較して、ViewModel.csファイルを追加しました。 コード修正が入るファイルは、MainWindow.xaml.csファイルとMainWindow.xamlです。 前回と比較し…

INotifyPropertyChangedを使った簡単なWPFサンプル例 [C#][WPF]

C#

サンプルコードについて INotifyPropertyChangedを使って、プロパティ値が変更されたことをViewに通知するのみのサンプルコードです。 簡単化するため、ViewとModelしかありません。 BindableBaseクラスは、INotifyPropertyChangedインタフェースを継承して…

簡単なWPFアプリケーションを作成しましょう (株価を取得するアプリ) [C#][WPF]

C#

はじめに 簡単なWPFサンプルアプリケーションを作成します。 本サンプルでは、Html Agility Packというライブラリを使用するため、あらかじめプロジェクトにインストールしてください。 方法は以下のページにあります。 www.atmarkit.co.jp プロジェクト名は…

マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間の変換を行うライブラリが便利すぎる [C++]

C++

最近、仕事でMFCのアプリケーションをUnicode対応する仕事をしていて、以下のライブラリを使わせていただきました。 マルチバイト文字列(std::string)とワイド文字列(std::wstring)の間の変換を行うライブラリが便利すぎたので、紹介させてください。 本ライ…

無効パラメータハンドラーとセキュア関数でバッファオーバーラン対策 [C++]

C++

はじめに Microsoft Visual Studio Community 2017を使用して、C++コンソールプロジェクトでプログラムを作成しています。 C++警告レベルはデフォルト(レベル3 (/W3))を使用しています。 セキュア関数を使用しないで、strcpy関数で文字列をコピーした場合 以…

C#で、正規表現を使って、一行から複数の文字列を抽出する [C#]

C#で、正規表現を使って、一行から複数の文字列を抽出するには、 名前空間System.Text.RegularExpressionsのMatchクラスのMatch.Groupsプロパティを使用して抽出できます。 Match.Groupsプロパティは、正規表現に一致したグループのコレクションを取得するプ…

C#で、非同期処理学習 [C#]

C#

非同期処理を使う必要性が発生したので、学習用のサイトを記録しておきます。 ufcpp.net www.kekyo.net

C# オブジェクト指向設計の学習 [C#]

C#

メソッドでパラメータを渡すのではなく、オブジェクト生成時に必要なデータをすべて準備する データと、そのデータを使うロジックは、一つのクラスにまとめる 一つ一つのオブジェクトの役割は単純にする 複雑な処理は、オブジェクトを組み合わせて実現する

C# シングルトンパターンの学習 [C#]

C#

C#で簡単なシングルトンパターンを記載してみます。 using System; namespace ConsoleApp2 { class Program { static void Main(string[] args) { SingletonClass instance = SingletonClass.Instance; SingletonClass instance2 = SingletonClass.Instance;…