関数プロトタイプを作成する



LabVIEW 2018ヘルプ


発行年月: 2018年3月
製品番号: 371361R-0112
製品情報を参照

ダウンロード (Windowsのみ)


LabVIEW 2015ヘルプ
LabVIEW 2016ヘルプ
LabVIEW 2017ヘルプ
LabVIEW 2018ヘルプ
LabVIEW 2019ヘルプ

テキストベースのプログラミング言語で共有ライブラリを作成するには、LabVIEWで関数プロトタイプを作成し、コードの詳細を入力します。LabVIEWでこの関数プロトタイプを生成できるようにすると、共有ライブラリのコードの基本構文が有効であることを確実にできます。作成するプロトタイプのソースファイルは.cファイルで、渡すパラメータのC宣言が含まれます。

以下の手順に従って、myshared.cのプロトタイプのソースファイルを作成します。

  1. 新規のブランクVIを開いて、Array Averageという名称でVIを保存します。この関数により、値の配列の平均値が求められます。
  2. ブロックダイアグラムにライブラリ関数呼び出しノードを追加します。
  3. ライブラリ関数呼び出しノードアイコンを右クリックし、ショートカットメニューから構成を選択して、ライブラリ関数呼び出しダイアログボックスを開きます。
  4. ライブラリ名またはパス制御器を空のままにします。
メモ  ライブラリ名またはパス制御器を使用して、ライブラリ関数呼び出しノードが呼び出す共有ライブラリを指定します。
  1. 以下の一般仕様を入力します。
    1. 関数名フィールドに[avg_num]と入力します。
    2. 呼び出し規約フィールドからCを選択します。
  2. 以下の仕様を使用して、戻り値を定義します。
    1. ライブラリ関数呼び出しダイアログボックスのパラメータタブに移動します。
    2. 名前フィールドでデフォルト名をreturn typeからより分かりやすいerrorという名前に変更します。
    3. タイププルダウンメニューから数値を選択します。
    4. データタイププルダウンメニューから符号付き32ビット整数を選択します。
  3. 以下の仕様を使用して、「a」パラメータを指定します。
    1. パラメータリストの右のパラメータを追加ボタンをクリックします。
    2. 名前フィールドにあるデフォルト名のarg1aという名前に変更します。
    3. タイププルダウンメニューから配列を選択します。
    4. データタイププルダウンメニューから4バイト単精度を選択します。
    5. 配列形式プルダウンメニューから配列データポインタを選択します。
  4. 以下の仕様を使用してsizeパラメータを指定します。
    1. パラメータリストの右のパラメータを追加ボタンをクリックします。
    2. 名前フィールドにあるデフォルト名のarg2aという名前に変更します。
    3. タイププルダウンメニューから数値を選択します。
    4. データタイププルダウンメニューから符号付き32ビット整数を選択します。
    5. 渡す形式プルダウンメニューからを選択します。
  5. 以下の仕様を使用してavgパラメータを指定します。
    1. パラメータリストの右のパラメータを追加ボタンをクリックします。
    2. パラメータフィールドにあるデフォルト名のarg3avgという名前に変更します。
    3. タイププルダウンメニューから数値を選択します。
    4. データタイププルダウンメニューから4バイト単精度を選択します。
    5. 渡す形式プルダウンメニューから値へのポインタを選択します。
  6. 関数プロトタイプフィールドに戻り値が表示され、3つのパラメータが以下の順序で正しく表示されていることを確認してください。

    int32_t avg_num(float *a, int32_t size, float *avg);
メモ  関数プロトタイプフィールドに表示される構文は技術的に正確です。ただし、最初のパラメータはfloat a[]として表示されるため、ライブラリ関数呼び出しノードが生成する.cファイルの正確性はより高くなります。
  1. OKボタンをクリックして設定を保存し、ダイアログボックスを閉じます。
  2. 設定が反映されるように「ライブラリ関数呼び出しノード」アイコンが更新されることに注目してください。
  3. ライブラリ関数呼び出しノードを右クリックし、ショートカットメニューからCファイルを作成を選択します。
  4. ファイルをmyshared.cとして保存します。
メモ  この例では、.cソースファイルを使用します。C++ライブラリを使用して作業する場合、ソースファイルの拡張子を.cppに変更します。

C++の名前装飾を回避する

C++コンパイラでのマングル処理と呼ばれるプロセスにより、エクスポートされた関数名にプラットフォーム依存が発生することを避けるため、ヘッダファイルで、以下のサンプルコードのようにC++コンパイラ関数エクスポート指令でextern "C"{}を使用してください。

extern "C" {
int32_t MyDLLFunction(int32_t nInput, uint32_t nOutput, void *arg1);
}

int32_t MyDLLFunction(int32_t nInput, uint32_t nOutput, void *arg1)

{

/* Insert Code Here */

}

メモ  関数のC++宣言を無効にすると、コンパイラは関数の多態性バージョンを作成できません。

関数プロトタイプを作成した後、.cファイルを完成させます。



この記事は役に立ちましたか。

役に立たなかった