Jump to content

How to identiy DLL created version?


Recommended Posts

If you crack it open in a hex editor (or even Notepad :shifty:), it may have a reference to a particular version of the run-time engine. I don't have a DLL lying around, so I can't confirm this.

Link to post
Share on other sites

I have created one DLL through labVIEW long back, now i want to know from which version of Labview it is created......Is it possible to identify?????

If you try to invoke it on a reasonably clean computer, I'd imagine you would get a dialog box saying "This DLL requires the LabVIEW x.x Run-Time Engine." or some such thing.

Jason

Link to post
Share on other sites

Okay I have a solution, but before I give it let me say this is one of those things I hate about LabVIEW. If I build an EXE or DLL I don't know what version of LabVIEW it was built with. If you build an EXE it will say you need runtime engine X if it is not installed but if you have 4 installed and it works, how do you know which one it is?

Asbo was close. Download a Sysinternals application called ListDLLS. It says what DLLs are in memory and the version of them. This will tell you the version of your own DLL that is loaded in memory, but more importantly it will tell you the version of the lvrt.dll that is loaded into memory, which tells you which run time engine it uses to run your DLL.

I tested it with an EXE and it works fine. I made a hello world program, then ran Listdlls.exe > Dlls.txt

Then opened Dlls.txt and searched for the name of my EXE, it listed all Dlls it was using, and the version. For me it was 7.01.0001.4000 (LabVIEW 7.1).

Not sure what will happen if the required runtime engine isn't installed, I don't deal with LabVIEW DLLs very often.

I tried opening the file in a hex editor to see if I could find the version of LabVIEW it used, but I wasn't sure if I was looking at the right version, or just a random number that happened to be 7.1. Hope this helps.

Link to post
Share on other sites

I've never found an easy way to do do this programmatically within LV.

I use one of two techniques.

1. Create a function in the DLL called Get_Ver which will return the the dll version and LV version used (I don't use this much any more)

2. When you build the dll, put the LV version in the description section.

It won't help you for the current DLL. But you shouldn't have a problem in the future.

Link to post
Share on other sites

I tried opening the file in a hex editor to see if I could find the version of LabVIEW it used, but I wasn't sure if I was looking at the right version, or just a random number that happened to be 7.1. Hope this helps.

Were you looking for ASCII digits? It's entirely possible that it'd be stored in some binary format.

Link to post
Share on other sites

Were you looking for ASCII digits? It's entirely possible that it'd be stored in some binary format.

Yeah I was looking at ASCII. The data has to be in there somewhere, I just didn't invest much time trying to find it.

Link to post
Share on other sites
  • 2 weeks later...

Yeah I was looking at ASCII. The data has to be in there somewhere, I just didn't invest much time trying to find it.

LabVIEW uses for many version specific things a 4 byte integer which encodes the version in nibbles. And newer

LabVIEW versions compress almost everything in the VI to safe space and load time, but this also makes any

internal information very hard to read.

Link to post
Share on other sites

Join the conversation

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

Guest
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.

×
×
  • Create New...

Important Information

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