LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

LabWindows/CVI for Windows 2020 f1

Solved!
Go to solution

Hi,

 

in the meantime another patched version of CVI and its RT is available, 2020 f2 (unfortunately no CVI 2021).

 

I'd like to ask NI personnel to provide some information about the changes made.

Message 11 of 24
(2,362 Views)

CVI 2020:     build number 49152

CVI 2020 f1: build number 49252

CVI 2020 f2: build number 49352

 

0 Kudos
Message 12 of 24
(2,350 Views)
Solution
Accepted by topic author Wolfgang

The fix of patch f2 is listed here and addresses an issue with the DDE client.

 

Also the fixes of patch f1 are listed there.

0 Kudos
Message 13 of 24
(2,314 Views)

update: patch f3 can be installed with an old, perpetual license, one doesn't need the new annual license model, fortunately

 

CVI 2020:     build number 49152

CVI 2020 f1: build number 49252

CVI 2020 f2: build number 49352

CVI 2020 f3: build number 49452

0 Kudos
Message 14 of 24
(2,028 Views)

Hi Wolfgang

 

There is no read me for f3

Do you know what has changed/added ?

 

Thanks 

Gabel daniel

0 Kudos
Message 15 of 24
(2,006 Views)

No... I have no clue, but I hope that in some weeks documentation will be updated here

0 Kudos
Message 16 of 24
(1,998 Views)

A bitofftopic in this thread, anyway... has anyone managed to get the CVI build number at build time or at run time? _CVI_ preprocessor constant stops at "tiny" version number.


Carlo A.
Megaris




0 Kudos
Message 17 of 24
(1,954 Views)

...not using CVI functions, the suggestion of a GetCVIVersionEx function only reached the 'Under Consideration' status...

 

....but you suggested an alternative solution yourself, here 😁

Message 18 of 24
(1,949 Views)

I developed this function based on some WIN SDK document; it retrieves all version infos stored inside an .exe file. On my CVI2017 install it gives "17.0.0.295" (build number should be the last field): is this what you are looking for?

 

 

//--------------------------------------------------------------------------
//
// Funzione VersioneFile
//
//--------------------------------------------------------------------------
/// HIFN VersioneFile
/// HIFN Function to retriev version info stored inside an .exe file
/// HIRET Error code - '0' if no error detected
/// HIPAR file/pathname of the program to elaborate
/// HIPAR versione/String where to tore informations retrieved
int CVIFUNC ET_VersioneFile (char *file, char *versione)
{
    void*	tempBuffer = NULL;
    void*	versionInfo = NULL;
	int		line, error = 0;
	char	langName[16];
    UINT	len;
    DWORD	infoSize;
    DWORD	uselessParm;
    DWORD*	tempDWORD;

	if ((infoSize = GetFileVersionInfoSize (file, &uselessParm))) {
	    nullChk (versionInfo = malloc (infoSize));
    	if (!GetFileVersionInfo (file, 0, infoSize, versionInfo))
   	    	goto Error;

		/* Get the Language and Code Page                                        */
    	/*     The below 'hex' value looks a little confusing, but essentially   */ 
	    /*     it is the hexidecimal representation of a couple different values */
	    /*     that represent the language and character set that we are wanting */
		   /*     string values for.  040904E4 is very common, it means:            */
    	/*         US English, Windows MultiLingual characterset -- or:          */
		   /*         04------    = SUBLANG_ENGLISH_USA                             */ 
    	/*         --09----    = LANG_ENGLISH                                    */ 
	    /*         --11----    = LANG_JAPANESE                                   */ 
	    /*         ----04E4    = 1252 = Codepage for Windows:Multilingual        */
		   if (VerQueryValue (versionInfo, TEXT("\\VarFileInfo\\Translation"),
                       ((void **)(&tempDWORD)), &len)) {

	       	/* lVerPointer is a pointer to four 4 bytes of Hex number, first two */
	        /* bytes are language id, and last two bytes are code page. However, */
    	   	/* Lang_Charset_String needs a string of 4 hex digits, the first two */
	        /* characters correspond to the language id and last two the last two*/
    	   	/* character correspond to the code page id.                         */              
	       	langName[0] = 0;
		       sprintf (langName, "%04hX%04hX", LOWORD (*tempDWORD),
    	             HIWORD (*tempDWORD));
        	if (langName[0]) {
	           	sprintf (file, "\\StringFileInfo\\%s\\ProductVersion", langName);
	            if (!VerQueryValue (versionInfo, TEXT (file), &tempBuffer, &len) == 0)
	                if (tempBuffer)
						strcpy (versione, (char *)tempBuffer);
			}
		}
	}

Error:
	if (versionInfo) free (versionInfo);
	return error;
}

 

 



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
0 Kudos
Message 19 of 24
(1,941 Views)

@Wolfgang: You can't imagine how embarrassed 😳 I am right now: as an excuse I could mention advancing age and so on, but I'm actually a bit worried about my mental health.
 
I remember reading something on this forum, but not writing it myself! 🤣
It was 2016, after all.

@Roberto: qua la situazione è grave davvero 😅, e pensa che ci ho sbattuto la testa per un paio d'ore. Ovviamente anche la tua soluzione risolve il "problema".

Thanks a lot!

Carlo A.
Megaris




0 Kudos
Message 20 of 24
(1,915 Views)