LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

The procedure entry point could not be located.

Hello, I hope someone knows what is going on.
 
My program compiles and runs in CVI7.0. It would also compile successfully in CVI8.0 but it would not run. The error says "The procedure entry point _CVI-Debug_SynchronizeMemory could not be located in the dynamic link library cvirte.dll".
(NOTE: 1) I am using WinXP.   2) I am not using any dll in my program.)
 
Thank you in advance.
Bob.
0 Kudos
Message 1 of 12
(7,700 Views)
That error usually means that the version of the CVI run-time engine that you have installed is older than the version of the CVI environment with which you compiled your app. The run-time engine may be the same version, or newer, but it may not be older.

(To find out what you have, look for cvirte.dll in your windows/system32 folder and check its version.)

Although you can have multiple versions of CVI installed in the same machine, you will only have one version of the run-time engine, and its version should be at least as high as the highest version of the CVI environment. Typically, the installers should ensure that this happens, but apparently you got into some bad state.  If you have your CVI 8.0 CD handy, you can go to your Add/Remove Programs in the Control Panel, and repair your installation. That should fix it.

Luis
NI
0 Kudos
Message 2 of 12
(7,683 Views)
Hello Louis,
 
I tried your suggestion. I repaired the cvirte.dll. The program would compile succesfully but would still not run. The next thing I did was repair both CVI8.0 and cvirte.dll. The result was still the same as before. The fatal runtime error that displayed was "Unknown source position thread id 0x000000B0. The external process failed to load properly. Verify that all DLLs used by the debuggee were installed in the path."
 
I do not know what to do now. Any more suggestions?
 
Thank you.
Robert Mensah
 
0 Kudos
Message 3 of 12
(7,667 Views)
Hello Louise,
 
I forgot to let you know that I checked the version of the CVI8.0 run-time engine on my computer. cvirte.dll version is 8.0.0.273
 
Thanks again.
Robert Mensah
 
0 Kudos
Message 4 of 12
(7,665 Views)
Hello Robert,

So you are still getting the "The procedure entry point [...]" error, even though you have the CVI 8.0 RTE installed? That's pretty odd...

Does the same program still run successfully when you run it inside CVI 7.0?

Are you able to run any of the CVI 8.0 example programs, in CVI 8.0?

Also, can you make sure that you do not have another version of cvirte.dll anywhere in your computer?

If you do not have another version of cvirte.dll anywhere else, do you have access to a different computer in which you can try installing CVI 7.0 and CVI 8.0 in? I still suspect that there is some installation issue that's causing this, but it would nice to make sure that it is something in the computer setup.

Luis
0 Kudos
Message 5 of 12
(7,662 Views)

Hello Luis,

I have searched my computer and verified that there is only one "cvIrte.dll" in the windows/system32/directory and it is version 8.0.0.273.  Also, I saw "cvirt.dll" in the same directory. I hope it is not the reason I get fatal errors when I run my programs.  I was able to compile and run three different CVI8.0 example programs in CVI8.0.  This makes me believe CVI8.0 was installed correctly. [Note: This laptop computer I am using only has CVI8.0 installed]. The programs I am trying to recompile and run on this laptop (with CVI8.0)were developed and run successfully on my desktop computer using CVI7.0. All that I did was copy all the files from the destop computer to the laptop. Like I said before, I did not use any DLL in my program. When I run three other applications (that I transfered from desktop to laptop) in the laptop I got these three respective "Entry point not found" popup errors:

1)  "Entry point GetDateTimeElements could not be located in the dynamic link library cvirte.dll".
2)  "Entry point __CVI_Debug_Lock could not be located in the dynamic link library cvirte.dll".
3)  "Entry point __CVI_Debug_SynchronizeMemory could not be located in the dynamic link library cvirte.dll".                                                                                                                  
I hope this would shed more light to the problem I am seeing. I guess the other alternative is to rewrite my programs in CVI8.0 (which I am trying to avoid).                               Robert Mensah

                                          

 

0 Kudos
Message 6 of 12
(7,644 Views)
Hello, Robert

I have to say, I'm completely stumped with your error. This should not be happening, unless your executable, or any of the DLLs that your executable loads, is somehow being linked to the 7.0 version of cvirte.dll. I just checked the list of exports from my own copy of cvirte.dll, version 8.0.0.273, and it does include all three of those exports (none of them existed with version 7.0 of cvirte.dll). If you want to verify this with your own copy, and you do not already have Microsoft's Dependency Walker installed, you can install it from this URL:

http://www.microsoft.com/downloads/details.aspx?FamilyId=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en

(the tool is called depends.exe).

Another useful thing to do, once you have depends.exe available, is to feed it one of the CVI executables that you cannot run,  and verify that it, in fact, depends on c:\windows\system\cvirte.dll, version 8.0.0.273. If for some reason you cannot do this, try renaming cvirte.dll to something else, and verify that you get a different error when you try to run your program.

The cvirt.dll file that you asked about should be a non-factor. This file is only installed for compatibility with very old versions of CVI (less than 4.0, I believe). Your CVI application should just ignore it.

The fact that Windows complains about different functions when you run each of your three programs is not very significant either. Windows will only complain about the very first missing dependency that it encounters, and there are some "randomish" factors that cause the different executables to list their dependencies in different orders.

It is very odd that you can run CVI examples and yet cannot run your own projects. There's got to something about those projects that is triggering this, but so far that's been eluding us. If we can't resolve this, and if you don't mind zipping up one of those projects and attaching it here (with just enough code to reproduce the problem) I wouldn't mind playing with it until I can figure out what's going on. It doesn't matter whether the program runs or not. We just want to make it past the load-time DLL checks.

You asked about rewriting your projects in CVI 8.0. The thing is, there's nothing to rewrite. All you need to do is rebuild them with CVI 8.0. There really is no code that needs to be changed.

One last thing... I'll be out of the office from this afternoon until Tuesday of next week, so I won't be back in the forum until then But I'll follow up with you as soon as possible after I get back.

Luis
0 Kudos
Message 7 of 12
(7,636 Views)
Hi Luis,
 
The attached program file (FatalError, which comprises Album.cws,  Album.prj, Album.uir, Album.c, and Album.h) written in CVI8.0 pops up the fatal error below when run:
"The procedure entry point SetBitmapDataEx could not be located in the dynamic link library cvirte.dll".
When you return next week I hope you would take a look at it.
Thank you very much for your help.
 
Robert Mensah
0 Kudos
Message 8 of 12
(7,616 Views)
Hi Robert,

I'm afraid your files failed to upload properly.  If you could compress them into an achive and repost them, we might get a chance to look at them before breaking for the holidays.

Mert A.
National Instruments
0 Kudos
Message 9 of 12
(7,608 Views)
Hello Mert,
 
Sorry for messing up the files. Here they are .
Thank you.
 
Robert Mensah
0 Kudos
Message 10 of 12
(7,586 Views)