LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Visual C++で作成したDLLをLabVIEWで実行する方法

現在,Visual C++で作成したDLLをLabVIEWで実行しようと考えています.

しかし,作成したDLLをLabVIEWで実行すると計算結果が必ず「0」と出てしまいます.

プログラムのミスだと考え,計算結果の数値を変えましたが,0となりました.

今回,初めての作成で組み込む方法も定かではありません.

 

バージョンはそれぞれMicrosoft Visual Studio 2005とLabVIEW 7.1です.

添付はC++のDLLを作成するプログラムです.

 

よろしくお願い致します.

0 Kudos
Message 1 of 5
(4,666 Views)

こちらのリンクは既にご確認されましたでしょうか。
Win32ダイナミックリンクライブラリ(DLL)の作成とLabVIEWからの呼び出し
http://www.ni.com/white-paper/4877/ja/

 

C++ならライブラリ関数呼び出しノードを使うことになると思いますが、
1.C++のプログラム自体に問題があるか?
2.プログラムに問題がないならノードの設定に問題があるのでは?
の2点を懸念しております。

 

プログラムも添付してくださったようですが、うまく添付できていないようですので、

よろしければもう一度添付していただけませんでしょうか。

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 Kudos
Message 2 of 5
(4,602 Views)

>こちらのリンクは既にご確認されましたでしょうか。
リンク先は未確認でした.ありがとうございます.

 

>プログラムも添付してくださったようですが、うまく添付できていないようですので、

>よろしければもう一度添付していただけませんでしょうか。

添付されていない事を確認せず,投稿してしまい,大変申し訳ありません.

 

以下がcppの内容となります.

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<process.h>

void Location(double amp1[5000],double energy)
{
	double amp2[5000],df=2.5,sum=0.0;
	int i,j,ii,jj;

	i=0;
	j=4900;			/* データ数 */
	ii=8;			/* 騒音計の周波数(8番目=20[Hz]) */
	jj=3200;		/* 騒音計の周波数(3200番目=8[kHz]) */

	for(i=0;i<=j-1;i++)
	{
		amp2[i]=amp1[i]*amp1[i];
	}

	for(ii=8;ii<jj;ii++)
	{
		sum=sum+amp2[ii];
	}

	energy=10*log10(sum*df);
}

 

以下がdefの内容となります.

; serialib.def : Declares the module parameters for the DLL.

LIBRARY	"insei2012"
DESCRIPTION  'HumanGlove Windows Dynamic Link Library'

EXPORTS
    ; Explicit exports can go here

Location;

 長文失礼致しました.よろしくお願い致します.

 

0 Kudos
Message 3 of 5
(4,560 Views)

Cプログラム単体には問題なさそうですね。。。。

 

良かったら下記リンクを試してはどうでしょう?

私も以前DLLを作る際にこの方のブログに助けられました。

 

LabVIEW から呼ぶことが出来る DLL を生成する(C++)

http://dolphinfukushima.wordpress.com/2012/05/01/labview-%E3%81%8B%E3%82%89%E5%91%BC%E3%81%B6%E3%81%...

 

特に

_declspec (dllexport) int Add(int in1, int in2)

の一文がポイントのような気がします

Certified LabVIEW Developer
There are only two ways to tell somebody thanks: Kudos and Marked Solutions

GCentral
0 Kudos
Message 4 of 5
(4,530 Views)

ご回答ありがとうございます.

 

お教えて頂きましたリンク先を参照して試してみようと思います.

 

またわからないことがありましたら,質問させて頂きますので,

よろしくお願い致します.

0 Kudos
Message 5 of 5
(4,501 Views)