05-24-2013 02:14 PM
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?
Solved! Go to Solution.
05-28-2013 02:50 AM
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
05-28-2013 04:16 AM
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.
05-28-2013 03:04 PM
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
05-30-2013 02:32 AM
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
06-01-2013 03:18 PM
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...
06-11-2013 08:06 AM
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
06-11-2013 08:53 AM
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.
06-13-2013 05:53 AM
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
06-13-2013 06:37 AM
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