Hi everybody,
Here is the situation:

I have a C++ library that I wrapped using Swig for C#. The result is a 
low-level .so file that contains a C wrapper for the C++ library and a bunch of 
C# files that talk to .so file via P/Invoke calls.

So far, so good.

I created a test program that included all the generated C# files and I was 
able to call the C++ code successfully through all the layers.

BTW, I'm using MonoDevelop as my IDE. I had some problems finding the .so file 
and eventually after reading 
http://www.mono-project.com/Interop_with_Native_Libraries I settled on the 
following solution:

- Put the .so file in the same directory as the .exe file and create .config 
file for the .so file that looks like that:

<configuration>
  <dllmap dll="net" target="net.so" />
</configuration>

Now, I want to wrap the whole mess in a non-executable assembly that will add a 
nicer interface and hide all the low-level stuff generated by Swig. So, I 
created
a library project, added all the Swig generated C# files, added my nice 
interface class that uses the low-level stuff.

The new library project builds just fine and created a net.dll file.

I created a new test program that references the net.dll and calling the nice 
interface. This program builds fine too.

When I try to run this program I get again a System.DllNotFoundException

I added a config file called net.dll.config, but this time it didn't help. I 
even tried to map to the absolute path of the .so file to no avail. I know that 
the config file is used because the DllNotFoundException in the output says it 
can't find the target DLL with the full absolute path.


Any ideas what I should try next?

Thanks, Gigi

_______________________________________________
Mono-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to