Programming

Large File Experiment

In this “weekend” experiment I’ll write large file (16 GB in my case), then read it back with different buffer size and threads and check the performance.

Writing DLL for LabVIEW on Assembler

Nowadays development on pure Assembler is not very popular, because modern compilers can generate “good” code. On the other hand this is a very good exercise, which helps to understand a calling conventions and how it work in very low details.

How to pass LabVIEW's array in DLL

How to pass LabVIEW's array in DLL

When calling external code in LabVIEW, we need very often to pass arrays into external DLL. This small “step by step” tutorial walks you through two possible ways of calling C/C++ DLLs manipulating LabVIEW arrays inside.

My VI is broken after configuring DLL call, why?

My VI is broken after configuring DLL call, why?

This is a question, raised again and again on the forums about third-party DLLs: “…whatever I do I cannot get the library to work in LabVIEW. I get the error “The library for this node cannot be found or cannot be loaded….”. Below short “check list” with some explanations.

LabVIEW Controls Parts IDs

Every LabVIEW’s control part contains a “part ID” field which determines its purpose and functionality in the control. For example, a digital numeric control contains two BigMultiCosmetic parts for the increment and decrement buttons; the part ID is what determines which one is which. The Parts Window in the control editor displays the part ID as the textual name for the part, though the actual number is only visible in Heap Peek.

How to determine which decimal separator is used

While playing around with the Signal Processing Toolkit, I found in NI’s sources a funny method to detect which decimal separator is used in the operating system — simply perform a conversion of the string “1,23” to a double and compare it to the double constant “1.23”.

How to create *.lib file from *.dll

Two command lines which I often forgot and googling again and again. If you have dynamic link library, but haven’t according *.lib file, then use

dumpbin /EXPORTS yourfile.dll > yourfile.exports
lib /def:yourfile.def /out:yourfile.lib