Jump to content

Yair

Members
  • Content Count

    2,843
  • Joined

  • Last visited

  • Days Won

    41

Posts posted by Yair


  1. I don't use the variant probes, but a quick look at the code (browseVariant.vi) shows that it uses deprecated VIs in the refnum case. It looks like even the new NI VIs (at least in 2015) don't do the whole job (they seem to return the class name of the wire you had before you convert to a variant, rather than the actual class on the wire), so I think you will need a combination of NI's Get Type Information.vi to know that it's a class and OpenG's LVOOP Return Class Name__ogtk.vi to get the class name:

    Example_VI.png.86cced548726851d6e7a68e1828f6165.png


  2. On 4/10/2019 at 10:53 AM, Dawid said:

    The mystery is, why Labview cannot see file in C:\Windows\System32\ catalog??!!

    If anybody knows how to answer this question I will be very appreciate. Generally we can close the topic.

    Short version - you're running a 32 bit process on a 64 bit OS which causes a mess as to how to correctly run LPR. Here are a couple of relevant links:

    https://knowledgebase.progress.com/articles/Article/Running-OS-COMMAND-LPR-EXE-from-within-32-bit-OpenEdge-the-Procedure-Editor-fails-on-64-bit-Windows

    https://docs.microsoft.com/en-us/windows/desktop/winprog64/file-system-redirector

     

    The first one suggests a solution, although I haven't tried it myself.

    • Thanks 2

  3. I forgot to mention those. I actually started with those events, but my understanding was that the desire is to discard actions on the items, not opening and closing, and for those the open/close events don't really help (unless you plan on registering for both the open/close? event and for the mouse down? event and hope that LV will always process events in the order of the frames and then you can try relying on the lack of the first event to discard the second).

    Like I said, I assume making it an indicator would do the job.


  4. I don't know if there's a way to figure out if the click was specifically on the expand symbol (other than starting to calculate yourself, which could get messy with nested elements), but can you just make the tree an indicator instead of a control? This will allow you to expand, but not to select. If the selection option is needed, Shaun's code from above should work. I'm not sure about dragging and other features.


  5. On 3/16/2018 at 3:05 PM, rolfk said:

    Yes, Yair's idea won't work.

    The funny thing is that I actually ran into this myself more than once, but I keep forgetting that it's not like flattening the array using the LV flattening functions and that you need to inline the bytes yourself using a cluster. I seem to recall making that mistake more than once and then having to fix it after testing.


  6. Whether you have separate elements or a cluster or a 1D array of clusters with a single element should probably not matter, as they are all the same in memory. I'm pretty sure the part you're missing is the char    Data[1024]  line - this means an array of 1024 bytes is expected (possibly so that it can be written into) and you're not allocating that memory. Try initializing the array to a size of 1024 bytes.


  7. On 10/20/2017 at 1:10 AM, ShaunR said:

    You need to us gacutil.exe. to get it into GAC. It's like with the old ActiveX where you used to call regsrvr32 (but different :P ).

    Yeah, doesn't look like a good option here, as there's no VS installed there and it looks like it's against the license to take that utility on its own. Looking at some links from searching for that showed this, which seems to indicate you should be able to call System.EnterpriseServices.Internal.Publish.GacInstall to add an assembly to the cache, but a quick test both with through PowerShell and through LV, both run as admin, failed to install it to the GAC (the method doesn't actually return an error. Instead, the error is logged to the system event log and has no actual useful details).

    I think that for this specific project I will either copy the EXE into the DLL's folder or copy the DLL and all its dependencies into the EXE's folder. Ugly, but probably workable for this specific case and less of a hassle than the other options. I would have to check with the client what their preference is, but I doubt it's worth spending any more time on at the moment.

     

     


  8. I have the same question. I have some third party DLLs installed into the program files folder. As far as I can tell they are unsigned and not in the GAC (the public key token is null).

    I can call the DLLs, but when I build an EXE, it shows the browse dialog if the DLL is not in the application folder. Selecting the DLL then does load the program correctly. I would rather not copy the EXE to the DLLs folder or copy all of them (to get all the dependencies) to the application's folder.

    Creating a config file with a codebase element didn't seem to help either, probably because the assembly is unsigned.

     

    Does anyone know of a way to point to a non-GAC DLL which is not under the folder of the EXE?


  9. On 7.9.2016 at 10:55 PM, Neil Pate said:

    (like how to write a recursive algorithm in LabVIEW without having a nervous breakdown)

    The answer is generally to convert it to a stack based algorithm. Rather than calling the same function, push the data into a queue and dequeue it until the queue is empty.


  10. 1 hour ago, PhilipK said:

    is LabVIEW or Windows automatically performing some clean-up in the background leading to an invalid reference...?

    Probably. LV's general approach to references is that they are cleaned up when the hierarchy they were created in goes idle or out of scope. The hierarchy is determined by the top level VI, so if you're running a VI to create the connection and that VI stops and you're then running the second VI, the value of the reference is still there, as you can see, but the underlying resource has been cleaned up because the VI has stopped.

    Since you didn't show any code showing how you're testing this, I can't know for sure, but I'm guessing that's your issue. Another potential issue would be that your code is still running, but the reference was created in a hierarchy (i.e. a dynamically called VI) which did stop running.


  11. As I said a few years back, I now use Inoreader for RSS and am quite happy with it (enough to pay to remove the ads) -

    That said, I have never used RSS for LAVA, because I don't find it very practical to have all the topics mixed together in a single feed. The fact that the unread list allows me to see all replies from a single topic as a single line means it's much easier to compartmentalize.


  12. On 11.6.2016 at 1:38 AM, jacobson said:

    The thought had crossed my mind that JeffK just made this all up for his own entertainment and while I would be a bit sad, I would definitely respect that.

    Well, trolling ShaunR is certainly a worthy endeavour... :P

    Plus, you never know. jeffk could just be AQ who managed to get IT to give him a new email address so he can register a new NI account.


  13. On 26.5.2016 at 4:32 PM, ShaunR said:

     I'm just boggled why Michaels decision is even being questioned because I consider it is a black and white choice for the site owner and he's made the decision.

    You may consider it black and white, but you're not the site owner. Mike is, and he hasn't responded, so we don't know what his reasoning is for his position (not that it really matters, because he can do whatever he deems fit).


  14. Vehemence is a strong word, considering the term I used was "preferable".

    It's a simple binary choice between require or don't require and the considerations for it are either conceptual ("we want minimal barriers", "we want people to commit", etc.) or technical ("defend against DOS", etc.). I'm just saying that my preference is for it to be open unless there's a good reason for it to be closed. DDOS protection is a good argument, but you can argue in return that LAVA is not a likely target or that even if it is attacked, it might be worth it. Then you could counter-argue that Michael's peace of mind of not having to deal with it takes precedence over users ease of use of not having to register. All are valid arguments, but in the end it's easier for users if they don't have to register.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.