Discussion:
LabView-Dll and c++ (with FieldPoint)
(too old to reply)
suamikim
2006-02-02 08:40:37 UTC
Permalink
Hi,

i've just startet to work with LabView and am trying to solve a (actually simple) problem:

I want to read the 8 analog input-channels and the 4 relay-channels of
a connected FieldPoint (FP-1601, FP-RLY-422, FP-AI-100). This
functionality should be used as a dll in a c++-program.

By now i'm able to read the channels in the vi but the usage of the dll in my c++-program behaves a little strange:

Calling the LVDLLStatus-function of the dll in my program allways results in error 1003 (kLVE_VIBad, The VI is not executable -> according to LabView-help) and the error-msg is the name of the vi.

Do i have to take care of something special making a dll with
FieldPoint-assistance? For testing i also made some simple dll's
without FieldPoint-assistance which worked fine (i.e. to add up
figures).

Independent of the "FieldPoint-problem" there is another problem i'm struggling with:

At the first call of a dll-function the program hangs up with the following error-message:


"FieldPointTest.exe has triggered a breakpoint"


At this point i can continue the execution by pressing the
"continue"-button whereupon execution of the program proceeds nomally
(also when i call another dll-function).
After the hang-up there is a new message in the program-output which says:


"DLL 'C:\Program Files\National Instruments\Shared\LabVIEW
Run-Time\7.1\DNCompInfo.dll' is attempting managed execution inside OS
Loader lock. Do not attempt to run managed code inside a DllMain or
image initialization function since doing so can cause the application
to hang."

This problem also appears at dll's without FieldPoint but only when
i start the execution out of the designer (Visual Studio 2005). If i
start the compiled exe the program executes normally without any
error-messages.

I hope there is somebody who can help me any further cause i've
allready searched a lot in the internet and can't find anything help anymore.
Especially regarding FieldPoint in alliance with LabView and dll's i
can't find anything helpful!

thanks, best regards

mike
Hansjörg
2006-02-05 14:47:43 UTC
Permalink
May be a look on this site helps:
http://zone.ni.com/devzone/devzone.nsf/webcategories/E2A99E7E10D5725D862567A
C004F0A53


Hansjörg
Post by suamikim
Hi,
I want to read the 8 analog input-channels and the 4 relay-channels of
a connected FieldPoint (FP-1601, FP-RLY-422, FP-AI-100). This
functionality should be used as a dll in a c++-program.
By now i'm able to read the channels in the vi but the usage of the dll in
Calling the LVDLLStatus-function of the dll in my program allways results
in error 1003 (kLVE_VIBad, The VI is not executable -> according to
LabView-help) and the error-msg is the name of the vi.
Post by suamikim
Do i have to take care of something special making a dll with
FieldPoint-assistance? For testing i also made some simple dll's
without FieldPoint-assistance which worked fine (i.e. to add up
figures).
"FieldPointTest.exe has triggered a breakpoint"
At this point i can continue the execution by pressing the
"continue"-button whereupon execution of the program proceeds nomally
(also when i call another dll-function).
"DLL 'C:\Program Files\National Instruments\Shared\LabVIEW
Run-Time\7.1\DNCompInfo.dll' is attempting managed execution inside OS
Loader lock. Do not attempt to run managed code inside a DllMain or
image initialization function since doing so can cause the application
to hang."
This problem also appears at dll's without FieldPoint but only when
i start the execution out of the designer (Visual Studio 2005). If i
start the compiled exe the program executes normally without any
error-messages.
I hope there is somebody who can help me any further cause i've
allready searched a lot in the internet and can't find anything help anymore.
Especially regarding FieldPoint in alliance with LabView and dll's i
can't find anything helpful!
thanks, best regards
mike
suamikim
2006-02-06 09:40:37 UTC
Permalink
Thanks for your reply. I allready knew that link, but i can't find anything about FieldPoint-Communication in a dll there.

Apart from this i don't want to use the dll anymore, cause i've started
to create a c++-Application which communicates over DataSockets with
the FieldPoint (I'm using the DirectX-Controls CWDataSocket and
CWGraph).

I'm able to connect to my FieldPoint but i don't know how to read data from it:

I trap the OnDataUpdatedCwdatasocket-Event of
the CWDataSocket. Unfortunately i don't know how to handle the Data.
The only parameter of the event is a LPDISPATCH-Type. How can i get the
data out of this type resp. how can i read the data direct from the
CWDataSocket?
The only usefull method i can find in the DataSocket is get_data() which returns the same LPDISPATCH-Type as the event.

At ni.com i found an example in Visual Basic, which reads the data like this: CWDataSocket.Data.Value
Where can i find the corresponding functions in c++?

thanks, best regards

mike

Loading...