NPTrackingToolsx64.lib points to 32-bit DLL

Post Reply
Cameron
Posts: 17
Joined: Tue Mar 03, 2009 7:11 am

NPTrackingToolsx64.lib points to 32-bit DLL

Post by Cameron »

Hello,
I downloaded the Tracking Tools 2.5.0 Beta last week since I wanted to build a 64-bit application with the new 64-bit supported TT libraries. I believe the 64-bit static library NPTrackingToolsx64.lib references the 32-bit DLL instead of the 64-bit DLL.

I linked and compiled with the NPTrackingToolsx64.lib to build my 64-bit application. However, at runtime when it should link to the 64-bit NPTrackingToolsx64.dll my application aborted with errors. I tried to build the sample "markers" application (64-bit configuration) that comes with TT and also got errors. Using DependencyWalker I saw that both my application and the markers executable had a dependency listed for the 32-bit NPTrackingTools.dll, not the 64-bit NPTrackingToolsx64.dll. Indeed if I looked at the 64-bit lib file, it shows the filename of the 32-bit DLL in several places but not the 64-bit DLL filename.

I was able to work around this by renaming the 32-bit DLL and then renaming the 64-bit DLL to NPTrackingTools.dll so that it would be the one referenced by the 64-bit lib. Now my application and the sample application are working happily and dependency walker shows the dependency being resolved and it's happy.

Just wanted to let you know :)

Cameron
NaturalPoint - Mike
Posts: 1896
Joined: Tue Feb 01, 2011 8:41 am
Location: Corvallis, OR

Re: NPTrackingToolsx64.lib points to 32-bit DLL

Post by NaturalPoint - Mike »

I've gone ahead and reported this to our development team, they should be looking at it for the final release. Thanks for the heads up!
beckdo
Posts: 520
Joined: Tue Jan 02, 2007 2:02 pm

Re: NPTrackingToolsx64.lib points to 32-bit DLL

Post by beckdo »

Thanks for the detailed description, Cameron. I will get this updated.
Cameron
Posts: 17
Joined: Tue Mar 03, 2009 7:11 am

Re: NPTrackingToolsx64.lib points to 32-bit DLL

Post by Cameron »

No problem! Looking forward to the next release :)
Cameron
Posts: 17
Joined: Tue Mar 03, 2009 7:11 am

Re: NPTrackingToolsx64.lib points to 32-bit DLL

Post by Cameron »

Just following up to ask if there is a fix or new release on the way for this issue. Our clients using OptiTrack systems with our software cannot use 64-bit Windows yet (unless instructed to rename libraries as mentioned in the above workaround, but that is not the best solution imo). Thanks,

Cameron
Cameron
Posts: 17
Joined: Tue Mar 03, 2009 7:11 am

Re: NPTrackingToolsx64.lib points to 32-bit DLL

Post by Cameron »

bump
jolsonsalem
Posts: 323
Joined: Thu Oct 11, 2012 9:18 am

Re: NPTrackingToolsx64.lib points to 32-bit DLL

Post by jolsonsalem »

I went back and checked out the markers sample app that comes with Tracking Tools and an error message about NPTrackingTools did come up, but once I copied NPTrackingToolsx64 into it the app compiled and ran so I believe this has been fixed, just needs some wording in the error message changed. I have alerted our developers about that. Let me know if you have any troubles getting the 64bit version to work for you.
Cameron
Posts: 17
Joined: Tue Mar 03, 2009 7:11 am

Re: NPTrackingToolsx64.lib points to 32-bit DLL

Post by Cameron »

Hi Jeff,
I believe the issue is still there in the latest release (2.5.0). The problem is not that I cannot get a program to run, but that the 64-bit static library included with TT 2.5.0 does not reference the 64-bit DLL, rather it references the 32-bit DLL. So when I write software that uses the 64-bit static library it does not reference and link to the 64-bit DLL at runtime. This can be verified in a couple of ways. 1) open the static library NPTrackingToolsx64.lib in a text editor and search for ".dll", and you will find a number of references to NPTrackingTools.dll (the 32-bit DLL) instead of NPTrackingToolsx64.dll. 2) Build the sample application markers.exe that comes with Tracking Tools for x64, then use a program such as Dependency Walker to open the exe and list its dependencies. You will see that the 32-bit NPTrackingTools.dll is a dependency where again it should be NPTrackingToolsx64.dll. Image showing 64-bit markers.exe application with 32-bit NPTrackingTools.dll dependency: http://i.imgur.com/ZfOJa.png.

I describe a workaround above where I rename the DLL files so that it does end up referencing the correct 64-bit DLL, but I would rather not deploy this kind of solution to our clients. So for now I cannot upgrade them to 64-bit support because our clients use the system via our real-time control software tools that use the TT API. It should be a relatively simple fix, I was just waiting for any release that would fix this so I can have 64-bit support for my clients.

Thanks,
Cameron
Post Reply