C++(3)-DLL作成

今回は、DLLを構築したいと思います。開発言語は、C++を使用します。開発環境は、Visual Studioです。DLLは、Dynamic Link Libraryの略です。動的リンクライブラリの意です。C++で構築した機能をC#で呼び出しを行いたいので、DLLを構築することにしました。

DLLから呼び出せる関数は下記の関数とします。

  • int calc_add(x, y); // 足算
  • int calc_sub(x, y); // 引算
  • int calc_mult(x, y); // 掛算掛
  • int calc_div(x, y); // 割算

作成したDLLからC#で関数を呼び出してみたいと思います。下記のような画面を作成して、DLLから関数を呼び出して演算します。

それでは、DLLを構築していきたいと思います。まずは、プロジェクトファイルを作成します。メニューより、ファイル、新規プロジェクト作成を選択します。

下記のような画面が表示されるので、テンプレート→VisualC++→Windowsデスクトップよりダイナミックリンクライブラリを選択、プロジェクト名(任意名)を入力して、OKを選択します。今回は、DllCalcというプロジェクト名にしました。

2021年3月3日 | カテゴリー : C++ | タグ : , | 投稿者 : prog

C++(2)-Ethernetフレーム

今回は、PCでEthernetフレームの送信、受信ができる機能を構築したいと思います。開発言語は、C++を使用します。開発環境は、Visual Studioです。

以前、Renesas製のマイコン「RX65N」が搭載されている「GR-ROSE」ボードを2台使用して、Ethernetフレームの送信、受信を行ってみました。

RX(21)-Ethernetフレーム通信

「GR-ROSE」と「GR-ROSE」での通信は無事できましたが、PCと「GR-ROSE」で通信をしてみたいと思い、PCでEthernetフレームの送信、受信ができるアプリケーションを構築することにしました。最初は、Wiresharkを使用しようと思ったのですが、Wiresharkは、Ethrenetフレームを受信することはできますが、Ethrenetフレームの送信ができなさそうなので、断念しました。

それでは、アプリケーションを構築していきたいと思います。今回、アプリケーションを構築するうえでのNpcapを使用します。NpcapはWiresharkなどでも使用されています。

C++(1)-文字列出力

C#であるアプリケーションを作成しようと思いましたが、公開されているライブラリがヘッダファイル、LIB、DLLで構成されていたので、C++を使用してアプリケーションを作成することにしました。開発環境は、Visual Studioを使用します。

まずは、C++言語を使用してアプリケーションを動作させてみようと思います。作成するアプリケーションは、下記のような文字列の出力機能にしようと思います。

  1. Hello world. と出力する。
  2. 何かキーボードが押されるまで、処理を中断する。

「2」の機能を追加しないと、Hellow worldと出力した後、アプリケーションが終了してしまうため、文字列の出力を目視で確認できません。そのために、「2」の機能を追加しています。他にも方法はあると思いますが、今回は「2」の方法を使用しようと思います。

それでは、アプリケーションを構築します。

まずは、新規プロジェクトの作成を行います。メニューより、ファイル、新規プロジェクト作成を選択します。

下記のような画面が表示されるので、テンプレート→全般より、空のプロジェクトを選択、プロジェクト名(任意名)を入力して、OKを選択します。今回は、output_testというプロジェクト名にしました。

プロジェクトが生成されました。

次に、main.cppファイルを新規作成します。ソリューション エクスプローラーのソースファイルフォルダを右クリックして、メニューを開き、追加→新しい項目を選択します。

C++ ファイル(.cpp)を選択、名前(任意名)を入力して、追加ボタンを押します。

main.cppが追加できたので、main.cppにコーディングしていきます。下記は、どちらかというとC言語ですかね。

#include <stdio.h>		// -----------①

int main()
{
	int c;

	printf("Hello world.");
	c = getchar();

	return 0;
}

C++では、下記のようなコーディングもできます。

#include <iostream>	// -----------②

int main()
{
	char str[10];

	std::cout << "Hello world.";
	std::cin >> str;

	return 0;
}

それでは、ビルドして実行してみます。下記のような画面が表示されます。

①の方は何かキーボードを押すとアプリケーションを閉じます。②の方は、何か文字を入力した後、ENTERキーを押すとアプリケーションを閉じます。

2020年10月14日 | カテゴリー : C++ | タグ : , | 投稿者 : prog

C#(13)-CAN通信(PCAN-BASIC API)

今回は、CAN通信を行えるアプリケーションを作成しようと思います。CANは、Controller Area Networkの略称で、ISOにて国際的に標準化されたシリアル通信プロトコルです。1986年ドイツの伝送メーカBOSCH社で自動車向けの通信プロトコルとしてCANを開発しました。今日では、CANの高い性能と信頼性が認められ、用途は多方面にわたっています。

CAN通信を行うために使用するハードウェアは、Peak System社製のPCAN-USBを使用しようと思います。Peak System社より、「PCAN-View」というアプリケーションも提供されているので、PCAN-USBと組み合わせて使用することで、CAN通信を行うこともできます。PCAN-Viewは下記サイトよりダウンロードできます。

https://www.peak-system.com/PCAN-USB.199.0.html?&L=1

下記は、実際にCAN通信を行っているようすです。

PCAN-ViewでもCAN通信はできますが、今回は、C#を使用して、アプリケーションを作成したいと思います。開発環境は、Visual Studioになります。

C#言語(11)-OANDA APIを使ってドル円チャート作成

前回、OANDA APIをC#からWebリクエストして、ドル円の価格情報をタスクトレイのアイコン上に表示するアプリケーションを作成しました。内容は下記のリンクより参照できます。

C#言語(10)-OANDA APIを使ってドル円情報取得

ドル円の価格情報が取得できると、チャートも見てみたいなと思ってきます。今回は前回の作成したドル円の価格情報を取得する機能にチャートを表示する機能を追加したいと思います。

チャートの作成は、下記リンクのページで一度作成してみました。この時は、フォームの編集画面で、チャートの設定を概ね行いましたが、チャートの設定はコードで記載していきます

C#言語(9)-グラフの表示

機能としては、「ContextMenuStrip」に「元のサイズ」、「最小化」を追加します。「元のサイズ」を選択すると、5分足のチャートを10本を画面の右下の端に表示します。「最小化」を選択すると、5分足のチャートを10本を非表示します。

それでは、アプリケーションを作成していきます。以前、作成したドル円の価格情報を表示するアプリケーションを開きます。

2020年6月17日 | カテゴリー : C# | タグ : , , | 投稿者 : prog

C#言語(10)-OANDA APIを使ってドル円情報取得

OANDA APIのWebリクエストをPythonを使用して行いました。この時は、ドル円情報、ドル円オーダーの情報を取得しました。下記のリンク先で内容を公開しています。。

Python(9)-OANDA APIをWebリクエスト

今回は、C#でOANDA APIを使ってWebリクエストをしてみたいと思います。Pythonはとても使いやすくて便利ですが、Windowsと連携させるのは、やはりC#(Microsoft)のほうが使いやすいです。なぜWindwosと連携させたいかというと、企業のPCはWindowsを使っているところが多いと思います。就業中に堂々とドル円の価格を検索するのも難しいですが、ちょっと気になるときにちょこっとの操作でドル円の価格を確認したい方もいるかもしれません。ということで、ちょこっとの操作でドル円を確認できるアプリケーションを作ってみたいと思いました。

今回、作成するアプリケーションは下記のようなタスクトレイ常駐機能です。

2020年6月10日 | カテゴリー : C# | タグ : , , | 投稿者 : prog

C#言語(9)-グラフの表示

今回は、C#言語でグラフの表示をする機能を構築したいと思います。グラフの種類は散布図にしようと思います。それでは、構築していきたいと思います。まずは、新規プロジェクトを作成します。作成方法は下記のサイトを参考になると思います。

C#言語(1)-アプリケーションを作成してみる

次に、Chartをダイアログに配置します。ツールボックスの[データ]→[Chart]を選択してダイアログに配置します。

現在はグラフの種類が棒グラフになっているので、散布図に変更します。グラフのプロパティより[Series]を選択して、参照ボタンを押します。

Series コレクション エディタが表示されます。Chart Typeが「Column」に設定されているので、「Point」に変更します。変更したら、「OK」ボタンを押します。([データ]→[Name]に記載されているSeriesのNameは後ほど使用するので、覚えておいてください。)

これで、ダイアログの作成は完了したので、画面を表示した時の処理をコーディングしていきます。画面をダイアログのフレームをダブルクリックして、MainForm_Load関数を作成します。作成できたら下記のようにコーディングします。

private void MainForm_Load(object sender, EventArgs e)
{
    for (int i = 0; i &amp;amp;lt; 100; i++)
    {
        chart1.Series["Series1"].Points.AddXY(i, i);
    }
}

それでは、ビルドしてデバッグ実行してみます。傾き1の比例グラフが書けました。今度は、時間てきな要素を追加していきます。先ほど、MainForm_Load関数追加したコードは削除しておきます。次にダイアログを下記のように変更します。

「実行」ボタンをダブルクリックして、button1_Click関数を作成します。下記のようにコーディングします。

C#言語(8)-XMODEMプロトコルによるデータ受信

前回は、XMODEMプロトコルを使用してデータを送信するアプリケーションを作成しました。今回は、XMODEMプロトコルを使用してデータを受信するアプリケーションを作成しようと思います。XMODEMプロトコルを使用してデータを送信するアプリケーションは下記のページを参照してください。

C#言語(7)-XMODEMプロトコルによる送信

XMODEMプロトコルに関しては、下記のページが参考になると思います。

https://ja.wikipedia.org/wiki/XMODEM

下記のようなダイアログを作成しました。

wincs_006.PNG

XMODEMプロトコルを使用してデータを送信するアプリケーションとほぼ見た目は変わりません。

ダイアログの作成方法は、下記のページを参照してください。

C#言語(1)-アプリケーションを作成してみる

シリアル通信に関しては、下記のページを参照してください。

C#言語(2)-RS232C通信(シリアル通信)

ファイルの参照方法に関しては、下記のページを参照してください。

C#言語(6)-CSVファイルの読み込みと書き込み

参照ボタンを押すと、受信したデータを書き込むファイルを選択するダイアログを表示、受信したデータを書き込むファイルを選択した後に、実行ボタンを押すとファイルの受信を開始します。

それでは、ソースコードを見ていきます。

C#言語(7)-XMODEMプロトコルによるデータ送信

今回は、XMODEMプロトコルを使用してデータを送信するアプリケーションを作成しようと思います。転送効率はあまりよくありません。そのため、データ容量の大きいものを送信することには不向きですが。マイコンのFWのようにそこまで大きくないデータ容量であれば、十分使えます。マイコンのFWを書き込む目的でXMODEMプロトコルを使ってみようと思いました。

XMODEMプロトコルに関しては、下記のページが参考になると思います。

https://ja.wikipedia.org/wiki/XMODEM

下記のようなダイアログを作成しました。

ダイアログの作成方法は、下記のページを参照してください。

C#言語(1)-アプリケーションを作成してみる

シリアル通信に関しては、下記のページを参照してください。

C#言語(2)-RS232C通信(シリアル通信)

ファイルの参照方法に関しては、下記のページを参照してください。

C#言語(6)-CSVファイルの読み込みと書き込み

参照ボタンを押すと、送信したいファイルを選択するダイアログを表示、送信したいファイルを選択した後に、実行ボタンを押すとファイルの送信を開始します。今回、受信側はTeraTermを使用しています。また別の機会に受信側のアプリケーションも作成しようと考えています。

それでは、ソースコードを見ていきます。

C#言語(6)-CSVファイルの読み込みと書き込み

今回は、アプリケーション上でCSVファイルを開き、変数にCSVファイルデータを保存した後、変数に保存してあるCSVファイルデータを書き込むアプリケーションを作成しようと思います。下記のようなダイアログを作成しました。

ダイアログの作成方法は、下記を参照してください。

C#言語(1)-アプリケーションを作成してみる

参照ボタンを押すと、読み込みたいファイルを選択する画面が表示されます。

実行ボタンを押すと、書き込み先ファイルを選択、または新規作成できる画面が表示されます。

書き込み先ファイルを選択すると読み込んだデータを書き込み先ファイルに保存します。

単純な機能ですが、よく使う機能だと思います。読み込むファイルにパラメータを設定しておき利用したり、読み込んだファイル加工して新規にファイルを作成したりといろいろと応用できます。

それでは、ソースコードを見ていきます。