LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

missing export kernel32.dll when using cvi 9.0 on win 64

Solved!
Go to solution

Hi,

 

I just have a new computer (windows 7 64 bits) : PC 1 for short.

My old computer was a windows xp 32 bits : PC 2.

I compile my programs with CVI 9.0.

 

When I compile a program with PC 1 :

- the install works on PC 1 & PC 2

- the prog installed works on PC 1

- the prog installed doesn't work on PC 2 : Missing export ...... from 'KERNEL32.DLL'

 

Somebody has an idea?

0 Kudos
Message 1 of 10
(5,503 Views)

Hello,

 

The kernel32.dll is a Windows XP/NT/2000 generic process and forms the core of Windows for memory and threads management.
It's simply a system process which should not be stop.

 

If the DLL is missing, you can find it on Internet and download it once again.

Or you should proceed to the dll's repair : http://pcsupport.about.com/od/findbyerrormessage/a/kernel32dll.htm

 

Regards,

Celine
National Instruments France

0 Kudos
Message 2 of 10
(5,479 Views)

Hi,

if your program uses some functions from Windows SDK included in kernel32.dll, the program really depends on this library.

The problem is that for this reason CVI includes kernel32.dll when you build a distribution kit (on the target PCs you should find a copy of kernel32.dll in a subfolder of the one where you installed your application).

The problem is that CVI takes this dll from your development PC (Win 7) and your target PC (XP) can't work with this dll. Win XP has its own copy of kernel32.dll, but MS Windows Operating Systems load dlls from application folder before than from system folder.

 

And so, simply remove the kernel32.dll dependency and rebuild the distribution kit.

 

This is a general behavior of CVI and can bring to several problems. I've already reported this to NI, because Operating System dlls must not be included in a distribution kit. If the target OS lacks of some core dll, this is a severe problem, and it's not a situation that CVI can fix simply using some local copies of these dlls.

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
Message 3 of 10
(5,472 Views)

Hi,

 


Celine_ a écrit :

If the DLL is missing, you can find it on Internet and download it once again.

Or you should proceed to the dll's repair : http://pcsupport.about.com/od/findbyerrormessage/a/kernel32dll.htm


The DLL isn't missing or broken, I've tried with other XP 32...


vix a écrit :

 

And so, simply remove the kernel32.dll dependency and rebuild the distribution kit.


vix, I think you're right.

But I don't understand how I remove the kernel32.dll : have I to modify something in "Drivers & Components"?
Can you explain me what I have to do with more details?

 

Thank's,

 

AgatheProg

 

 

0 Kudos
Message 4 of 10
(5,458 Views)
Solution
Accepted by topic author AgatheProg

In Edit Installer window, Files tab, "Installation Files & Directories" section, in the listbox on the right you see all the files included in the distribution kit.

The second item in this list, after the executable (if I'm right because I had to delete it for every project I developed), there is an item called "your-executable 32 bit DLL Dependencies". Right click and select "Remove file". Then rebuild the distribution kit.

 

Feel free to give kudos to an useful suggestion Smiley Wink

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
Message 5 of 10
(5,441 Views)

vix a écrit :

In Edit Installer window, Files tab, "Installation Files & Directories" section, in the listbox on the right you see all the files included in the distribution kit.

The second item in this list, after the executable (if I'm right because I had to delete it for every project I developed), there is an item called "your-executable 32 bit DLL Dependencies". Right click and select "Remove file". Then rebuild the distribution kit.


And... IT WORKS!
Thanks vix, for your help and your explanations.

 

This is very strange that they don't think about that, CVI is supposed to be used by compagnies for several computers.

And all of them haven' t same configurations...

0 Kudos
Message 6 of 10
(5,427 Views)

I'm sorry, this information is not correct. CVI distributions do not include kernel32.dll, nor should you manually add kernel32.dll to any distribution. This is a system dll that is expected to already be present in any Windows computer.

 

The CVI development environment does install sdk\lib\msvc\kernel32.lib, but that's simply so that you can link programs that depend on the Microsoft SDK. The SDK dlls themselves come with windows. It is not correct to be copying these system dlls from one computer to another.

 

Luis

0 Kudos
Message 7 of 10
(5,384 Views)

My apologies, I've re-read this thread and I now realize that in some cases CVI does include these dlls as dependencies. Sorry about the previous post. I agree that this is buggy behavior. I'll follow up on this issue internally.

 

0 Kudos
Message 8 of 10
(5,376 Views)

Okay, I've looked into it, and there was indeed a bug in CVI 9.0 in which some system DLLs could be included in a distribution. It was fixed for CVI 2012.

 

Luis

0 Kudos
Message 9 of 10
(5,352 Views)

I'm sure I reported this behavior some years ago (with a private support request to local NI) for an old version of CVI.

I was not aware that it has been fixed.

 

Thanks

Vix
-------------------------------------------
In claris non fit interpretatio

-------------------------------------------
Using LV from 7
Using LW/CVI from 6.0
0 Kudos
Message 10 of 10
(5,346 Views)