I have recently started using interfaces in my projects and have since been running into recurring issues building applications - at this point I am having issues on 3 separate projects, all of which use many interfaces. On one project, I found that not type casting a class back to its object hierarchy when called from an interface method would cause the build to break. See the example below - this is an Actor Framework Message class, that also implements a callback interface - the implementation just sends the message back to the caller. (The snapshot below is the interface method implementation) Without the cast back to a message class, my exe would either not complete (VI Broke during build) or the exe would build, but when I tried running it I would get the error code 1003 indicating that the actor framework hierarchy was broken. (Not sure how that happens but the build completes?) This code would run fine in the development environment without the type cast.
On another, much larger project (approaching 10K VIs total), I am getting memory manager errors (Fatal Internal Error Memory Manager.cpp 0xf50EFD7B) These errors only started occurring when I brought in a large new section of code that used interfaces heavily.
On another project I'm getting the A VI Broke During Build message (usually Actor.vi), and haven't been able to figure out why - again, this project uses interfaces fairly heavily.
I'm using LabVIEW 2020, wondering if others have ran into similar problems or found other gotchas like the class type casting when building applications using interfaces? Any chance these issues have been resolved in later versions of LabVIEW?
Which LV version are you using? 32b or 64b?
If you are using 32b, Try running on 64b (hope dependencies can run on 64b too)
I had that error before on other events, usually when memory gets full or overflow.
Example...when using dlls that can handle up to X amount of memory and requesting it to work at X+n
Usually I get that error when a resource passes its memory space limit.
Thanks for the update - I'm in LabVIEW 32 bit, and unfortunately moving to 64bit would probably be out of the question as a core part of this codebase is calling into a 32bit dll. I realize I could write a wrapper exe around that and have the other application communicate with the wrapper, but that would be a significant chunk of work.
Note that the memory manager error is occurring before I even run the code - that is, I don't think the exe is actually being built. LabVIEW reports the build as being complete, but the size of the exe file on disk is always 128KB, versus closer to 150,000KB when it builds correctly. The exe file is there, but if its only 128KB I know the build didn't work correctly, and trying to run it is when I get the memory manager error. So, I don't know that its an issue with a memory leak or overflow, unless its a memory issue during the build process.