Jump to content

Memory or data Structure corrupt Error 74

Recommended Posts


I am trying to make communication between Two LabVIEW(Version 10 & Version 14) application through TCP\IP.

I am sending cluster(Inc.Variant and String Control) from  LabVIEW14 To LabVIEW 10 over TCP\IP. In this case everything work fine but when I include German word (Ex. Ü or Ö) there is error like 'Error 74 occurred at Unflatten from String.'

Additional if i try to send data through Class than again there is flatten to string or XML  error.

Anyone has idea what to do with it ?

NOTE: Same Communication between LabVIEW10 and LabVIEW 11 work fine even If I send (Ü, Ö,).



Edited by Gab
Link to comment

Can you examine the binary flattened string to see the differences between how LV14 would flatten the string vs LV10. You'll need to change the string indicator type to show hex. I can tell you it's a little unusual to flatten a variant. Much more common to flatten what would become a variant and then use that as a string in the flattened cluster. For example:

how to flatten.PNG

Edited by infinitenothing
Link to comment

well hes probably made a generic tcp function which takes his local cluster and transmits it like an RPC style thing.

If you're saying the german char is in the variant I'd suggest adjusting the code on the sending side to use this:


keep in mind the type is a variant, so you have to be careful about how the receiver gets it. Note the code in the KB -- if you use this function to flatten an entire cluster, then the receiver doesn't get a string representing the flattened cluster, it gets a string representing a flattened variant, which represents the cluster. So if you were to use this I'd suggest using it *just* on the variant part of the data. The complexity of doing so depends on what else is in the cluster and how labview stores data in memory ( http://zone.ni.com/reference/en-XX/help/371361N-01/lvconcepts/how_labview_stores_data_in_memory).

If the german char is in the string, well the flattened representation of a string has probably never changed -- its 4 bytes for len followed by the data. So in this case I'd guess its more likely to be an issue with how the ue or oe are represented in whatever character set is in use....but this is about the extent of my understanding of character sets in labview. I'd suggest doing what inf{} said above, maybe trying to reproduce a very simple case, or potentially using the unicode tools ( https://decibel.ni.com/content/docs/DOC-10153) to convert characters from window->utf8 and back again.

Edited by smithd
  • Like 1
Link to comment

I'd suggest doing what inf{} said above, maybe trying to reproduce a very simple case, or potentially using the unicode tools ( https://decibel.ni.com/content/docs/DOC-10153) to convert characters from window->utf8 and back again.

yes but same problem(German char) is working fine with LabVIEW11 and LabVIEW10. is there any change in flatten to string or unflatten from string function in LabVIEW 2014?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By Mahbod Morshedi
      Hi All,

      I m trying to build a software, and data management has become too complex. In short, it is acquiring data from three channels and doing some calculations and then showing and reporting that data for the user to make a fitting decision. The user then, can save the file and import the saved worked-up file later to view or manipulate.
      The data consist of three interdependent data set, and so far, I have collected the dat as an array of clusters (size 3) for three sets and kept user input data in the same manner. I am also using a simple "producer/consumer" design. However, I think that may have been a mistake, and I might be able to do a better job using either actor or QMH design, especially since I need to think about adding the acquisition part (which is not yet developed). The thing is that I have not used oop before at all and am not quite sure if this is the correct approach and how should I bundle my data. Considering that the data (not all but some) need to be accessed by other classes if I goo with oop.
      For example, should I keep the data as separate class data and use methods for override or keep it as an array in the parent class and use static methods and only use child classes for graphing. These are the type of questions I am struggling with. Also, can anyone help me decide between DQMH, Actor or just standard Producer/Consumer patterns, please? I am completely lost.
      Thank you in advence.
      This is how the front pannel looks like:

      And this is the data set for the system (which I am keeping as an array) there will me more data added to this as the capabiliy grows.

    • By cyro2015
      I tried to create a template based on OOP for QMH. During development I have been confronted with infinite crashes of LabVIEW so I decided to slow down with this project and open it to the community. I finished my working example and stopped for now.
      So if anyone is interested to play around with the code, see attached ZIP file (LV 2020).
    • By Marko Hakkarainen
      I had some time to learn about new interfaces and finally I could implement my collection class as I had envisioned. I didn’t want to use iterable and iterator names, because I thought that would have been too bold a claim.
      The original version of the collection class was (and is) used as a collection of sequence steps. Each element can be either a sequence command (send message, wait timer, wait complete etc.) or another collection of commands (sub-sequence). That’s the reasons for the labels and search method. Otherwise it is just a fancy (Rube Goldberg) array.
      Next method is recursive and it steps through all elements in the collection. Execute is only method, which requires override.
      For now, it’s at least an exercise in new interfaces. I don’t know if it’s useful enough to be in the code repository, but I can polish it up if needed.
      Marko H
      Certified LabVIEW Architect
      Iterable Collection LV2020.zip
    • By Zyl
      Hi everybody,
      I'm running into something I don't really understand. Maybe you can help me here !
      I've got a LVLIB that is used as an 'Interface': it exposes public VIs which wrap around public functions of a private class (see code attached) . The class is private because I want to force the users to use the 'interface' functions.
      In one of my interface VI, I create a DVR on the private class (Interface_init). The DVR is stored into a typedef (FClass_DVR.ctl) and this typedef is the 'reference' that link all the interface public functions.
      In TestCode.vi (which is not part of the lvlib and illustrates the standard code that a user can create to use my driver), I can call my public interface functions and link them without any problem.

      But as soon as I create an indicator on that reference (to create a state-machine-context-cluster for example), my TestCode VI breaks !

      The error returned is : This VI cannot use the LabVIEW class control because of library access scope. The LabVIEW class is a private library item and can only be accessed from inside the same library or libraries contained in that library.
      I understand that the class is private. But the DVR is contained into a public control. Using an In Place structure on that DVR into TestCode would not work, since the class is private. So why is the DVR control problematic at that point ? Creating it do not breaks any access protection...
      Am I missing something ?
      DVR Private POC.zip
    • By Brains
      Does anybody know the best way to make a copy of a byref object (open gds v4) at runtime and pass all the attributes values (including inherited attributes) to the new object?
      Thank you!
  • Create New...

Important Information

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