Search the Community
Showing results for tags 'pointer'.
-
I've got a 3rd party DLL I call from within my application. One of the functions returns a pointer to a variable length null terminated string. I use the mysterious GetValueByPointer.xnode to dereference the string and return it's value. This works great from within the Labview development environment. I'm using 2013Sp1. But when I compile the application into an executable, the xnode returns an error 7. It appears the DLL is returning a valid pointer, but the xnode can't dereference it. My hunch is that the pointer is crossing some kind of protected boundary, but I don't know for sure. I suppose I could write a wrapper around the DLL call, but I really don't want to have to do that if there is a simple workaround. Any ideas?
- 10 replies
-
Hello, I write here a topic, because I'm looking for a help since I can not deal with some issue for a long time. I'm trying to write LabView program which will program uC flash using JTAG usbWiggler manufactured by Macraigor Systems. The manufacturer provides customers with program to do whole staff connected with programming, but it's stand alone app and I would like to build the programming process into the test sequence performed by LabView (program + test). Additionally the manufacturer provides a library to call various functions related to programming, erasing etc. I tried to write a program to use dll but no success. There is some small cmd exe program which is using the dll (also created by the supplier), and its working, but there are some bugs in it, and I cannot change it or make some error handling so that's why I decided to use dll alone. I attached dll, dll readme file, ocd file (configuration file for uC), and VIs. I checked the first command called: "FlashSetupAndConnect" it's working without hardware, so you are able to test something. (checked with cmd exe program, without device it always pass if input data is ok, it fails when something is missing like bad path file etc.) Status from each function should be "1", and I get "0" all the time. The function should looks like this (copied from readme file): int FlashProgrammer_SetupAndConnect(char *ocd_filename, char *device_name, char *device_address, unsigned long baud_rate, unsigned long jtag_speed); I will be very grateful for any answer and advices. Dawid K. readme.rtf OCDandDLLl.zip
-
Hi all I new with labview & i need to take care of LV project at work, the past programmer work was to communicate with our HW during .DLL file {with defined C# function & objects}. my goal is to make this code active (the code is realy good except .dll functions that need to get pointer to struct and not intfloat etc.) I already read the topics: https://decibel.ni.com/content/docs/DOC-9091 http://lavag.org/topic/14528-call-dll/?hl=pointer#entry87090 It deals with related issue, but in this case i need to deliver pointer to struct that already contains data this data already usee by the program and the .dll need to adjust it. the dll functions doesn't return the struct value. { UINT32 BufferReadMeasurements(Measurement* measurementsArray, UINT32 offsetInBuffer, UINT32 numberOfMeasurementsToRead, DWORD timeOutMilliseconds); } in the code he sends instance of the struct with initialization to const values. but the function need to get pointer to real struct . (while i try to run it the program the stuck) 1. someone have an idea how can i do this ? 2. while i try to change VI patterns and insert more patches (want to wire it in different way) i found out that the vi i adjust is seen transparent in its appearance at block diagram, this cause errors in the code, so how can i change the vi pattern without create new errors ? thenks
-
Hello, I am trying to call a function from a dll with a pointer to a complex struct. I have tried multiple ways to represent the string in the struct (see attached typedefs), but the output clusters from the dll call always has the same values as input (i.e the dll isn't updating the output values). The ref ptr is based on an example from this link and I have attached a screenshot of my code for this case: https://decibel.ni.com/content/docs/DOC-9079 Here is how the vendor defines the struct: typedef struct { dword passkey; //password dword request; //0=readprop, 1=writeprop, 2=writerelinquish dword deviceid; //device instance dword objectid; //objectid dword propid; //property id dword arrindex; //array index dword datatype; //see simpletypes dword value; dword errorclass; dword errorcode; dword priority; //1..16 union { char sval[1500]; wchar_t wval[1500/2]; byte bval[1500]; BACnetDate dval; BACnetTime tval; datetime dtval; directaddr da; HWND listbox; bufptr buf; Range rg; bdrCOV cov; pxfer *px; }aux; } bdrbag; Here is how the vendor defines the struct in their vb example: Type bdrbag passkey As Long 'password request As Long '0=readprop, 1=writeprop, 2=writeproprelinquish deviceid As Long 'device instance ObjectID As Long 'objectid propid As Long 'property id arrindex As Long 'array index datatype As Long 'see simpletypes value As Single errorclass As Long errorcode As Long priority As Long '1..16 sval(0 To 127) As Byte 'string value End Type Thanks, Russell TYPEDEF_BACNET_bdrbag_byte_cluster.ctl TYPEDEF_BACNET_bdrbag.ctl TYPEDEF_BACNET_bdrbag_ref_ptr.ctl