Measurement Studio for VC++

cancel
Showing results for 
Search instead for 
Did you mean: 

Problems With Meausurment Studio AddIn , UIRCallbackTable.c and SourceSafe

Hallo,

Since 3 Weeks we use VisualC++ 7.1, SourceSafe 6.0, Measurement Studio7 and
CVI7.

In some of our visualc++(7.1) projects we have CVI-UIR-Files.

On building the projects the Measurement Studio-AddIn tries to generate a
UIRCallbackTable.c
and for this the environment tries to check out the project file and add an
section like "".
But I will/can not check out every time when I want to build a project of
my colleague his Project file!

Though we added the generated "UIRCallbackTable.c" to the Project. But that
is still not Solution.
Because there is a date in the project file section it is necessary to
change
the SourceSafe-opt
ions from the default settings to "Set Date/time on Locale
Files -> Modification" to do not check out the project file.

But if I have different regional settings for the date and time then my
colleague it is furthermore necessary to check out the project file! As It
seams the generated project file section depends on the regional settings of
the windows environment.

It is possible eliminate of this problem in an other way then disabling the
Measurement Studio-AddIn, but I don't think that could be the Intension of
NI.

Is there an other solution?

thanks

Babak Pourat
0 Kudos
Message 1 of 9
(3,827 Views)
When building your project, the timestamp (and therefore the project file) will be updated if any .uir files in the project have been updated. This is necessary for your project to work correctly.

When you build your project, have any of the .uir files in it been changed since your last build?
0 Kudos
Message 2 of 9
(3,827 Views)
Jessica wrote:
> When building your project, the timestamp (and therefore the project
> file) will be updated if any .uir files in the project have been
> updated. This is necessary for your project to work correctly.
>
> When you build your project, have any of the .uir files in it been
> changed since your last build?

Yes.

Babak
0 Kudos
Message 3 of 9
(3,827 Views)
UIRCallbackTable.c holds a list of callbacks in your .uir files. If your .uir files have changed since your last build, this file is updated at build time and a timestamp is put in the project file to check the next time you build. If this file isn't updated when the .uir files have changed, your project won't work correctly. Unfortunately, this means that your project file will keep being updated (and checked out) as long as the .uir files change.

I hope this helps. Let me know if there is anything else you need.
0 Kudos
Message 4 of 9
(3,827 Views)
Jessica wrote:
> UIRCallbackTable.c holds a list of callbacks in your .uir files. If
> your .uir files have changed since your last build, this file is
> updated at build time and a timestamp is put in the project file to
> check the next time you build. If this file isn't updated when the
> uir files have changed, your project won't work correctly.
> Unfortunately, this means that your project file will keep being
> updated (and checked out) as long as the .uir files change.
>
> I hope this helps. Let me know if there is anything else you need.

OK, It's clear.

But one problem resists: The timestamp is >>not independend<< from the
regional settins of the user:

I've tried this:
I build my project and check it in inclusive the UIRC
allbackTable.c.
One colleague gets the latest version of the project and compile it
without checking out the project file(He has the same regional setting
for date and time as me). The other college(with an other regional
setting) has to checkout the project file and the UIRCallbackTable.c.

In my opinion this is a bug.

And there ist just another problem: If there is write protection on the
UIRCallbackTable.c the generated error message is not very
helpful to find the problem.

For us it would be helpful to find a way to avoid the building of the
UIRCallbackTable.c.

Thanks

Babak
0 Kudos
Message 5 of 9
(3,827 Views)
CVI doesnt really have any control about how its files are timestamped by Visual Sourcesafe. THis might be more an option of sourcesafe than anything else.

One way you could get around the UIR callback table would be to create the panel at run-time ( using NewPanel ), along with controls ( using NewCtrl ). You can also dynamically register any callbacks for the controls as well by using InstallCtrlCallback().

Hope this helps

Bilal Durrani
NI
Bilal Durrani
NI
0 Kudos
Message 6 of 9
(3,827 Views)
As far as I see there is no solution from NI for our problem. Never the less
I have some comments to your answers:

bilalD wrote:
> CVI doesnt really have any control about how its files are timestamped
> by Visual Sourcesafe. THis might be more an option of sourcesafe than
> anything else.

This line in the VC(7.1)-project file :
""
is definitly not generated by SS but by the NI-addIn.
And the timestamp depens on the regional settings!
Try it!

>
> One way you could get around the UIR callback table would be to create
> the panel at run-time ( using NewPanel ), along with controls ( using
> NewCtrl ).
OK this could be a solution in theory but not practical for u
s!

> You can also dynamically register any callbacks for the
> controls as well by using InstallCtrlCallback().
We do this, though we do not need the UirCallbackTable.c.
But we don't know how to get rid of its generation.

Babak Pourat
0 Kudos
Message 7 of 9
(3,827 Views)
Thank you for pointing out the problem with regional settings and the timestamp. I will be filing a report about it today.

One way to get around updating the timestamp is to set the date to something in the future (e.g. 1/1/3000). This isn't the best solution, but it is a way to get around it. However, your builds will not be referencing the newest version of your .uir files. If you really don't need the UirCallbackTable.c file, though, then it shouldn't matter. Resetting the date should keep the file from being regenerated.

I hope this helps. Let me know if you need anything else.

- Jessica
0 Kudos
Message 8 of 9
(3,826 Views)
Jessica wrote:
> Thank you for pointing out the problem with regional settings and the
> timestamp. I will be filing a report about it today.
>
> One way to get around updating the timestamp is to set the date to
> something in the future (e.g. 1/1/3000). This isn't the best
> solution, but it is a way to get around it. However, your builds will
> not be referencing the newest version of your .uir files. If you
> really don't need the UirCallbackTable.c file, though, then it
> shouldn't matter. Resetting the date should keep the file from being
> regenerated.
>
> I hope this helps. Let me know if you need anything else.
>
> - Jessica

It seems that this is a practical workaround for us.
I will test it.


thanks,
Babak
0 Kudos
Message 9 of 9
(3,826 Views)