Attach to DLL in memory, don't load new instance

I have a database app in unmanaged code, with many DLLs. I have a web service server (managed code) that, when called, must call a function in one of the unmanaged database DLLs. That all works OK except for this: the DLL that gets called is completely uninitialized, loaded fresh from the disk. Very bad, because it really isn't part of a running program, so it blows up immediately. The DLL that I want is already in memory, running as part of the database app. There is only one DLL of that name on the computer. In the web service class declaration, I'm using something like this:

using namespace System::Runtime::InteropServices;
public class pipe
      {
      public:
      [DllImport("C:\\C32\\CPP\\PIPE.DLL",EntryPoint="WebQueryAvailable",
CharSet=CharSet::Auto)]
       static short WebQA(char*,long*);
      };

where the DLL path is spelled out. Any way to link to the DLL in memory so that this thread joins the current process?
Also, can LoadLibrary() be used to link to an unmanaged DLL from managed code? MS documentation doesn't say you can't, but it doesn't seem to work either.

Thanks for any advice.

Open in new window

PacificaResearchAsked:
Who is Participating?
 
bpmurrayCommented:
LoadLibrary should be able to load an unmanaged DLL from managed code (the converse is more difficult). Have you tried LoadLibraryEx?
0
 
Computer101Commented:
Forced accept.

Computer101
EE Admin
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.