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