With any release prior to VxWorks 6.0 and for kernel-space development
with all VxWorks releases it is possible, to some extent, to use the
object module loader to mimic dynamic libraries by the way of using
plain object modules. There is however a lot of differences between
the two features and it is usually quite a lot of work to adapt
existing code used within true DLLs so that it works when loaded as
simple object modules into the VxWorks kernel. Some functionality
available to processes using DLLs simply can't be replicated in the
VxWorks kernel using only object modules and a simple linking scheme.
Hope this helps,
--
PAD
Uhm.... if you are asking if you can take _binary_ Windows DLLs and
use them with VxWorks, the answer is no. Windows DLLs are in a
completely different object/executable code format (PE32 -- VxWorks
uses ELF), use a completely different set of C calling conventions
(Windows uses a mix of stdcall, fastcall and cdecl, VxWorks uses cdecl
only) and rely on a completely different set of underlying OS
functionality. (And Win32 binaries are x86 only, while VxWorks runs on
more CPU architectures than just x86.)
If you want to get your Windows app to run on VxWorks, you'll need the
source code for all of it, including the libraries on which it relies.
If your application depends on 3rd party libraries that were purchased/
licensed without source code, then you have a problem.
If you do have the source code, you're going to have to make
substantial changes to it to get it to run with VxWorks, especially if
it's a GUI-based app instead of a console-only one: VxWorks does have
a GUI library (WindML), but it's nothing like Windows. Also, I get the
impression that most Windows apps are written in C++. While the
VxWorks development environment supports C++, the compiler won't
handle Microsoft-specific features.
-Bill