[Mono-list] C# First port of application to mono
dgortonii at gmail.com
Sun Feb 27 23:51:52 EST 2011
Actually, that *is* right, with some important notes. Firstly, if your
p/invoke calls are decorated with the full DLL name (MediaInfoLib.dll)
then on Linux you must use Mono's dllmap to get it to find your native
code due to the different naming conventions for shared object libraries.
For native libs that I control the source for and I can decide the
compiled file names, I always make the 'root' of the names the same and
p/invoke with just the file name, no extension. Eg: MyCode.dll becomes
libMyCode.so on Linux and the p/invoke DllIMport attributes use 'MyCode'
as the dllName. This can apply for 3rd party native libs too if their
libraries are thusly named. After that, the .NET and mono search
algorithms work just fine on their respective platforms, as long as the
native libs are in standard place (/lib, /usr/lib, local dir, system32)
- see the docs for specific info on those search algorithms. If not,
again dllmap is your friend.
On 02/27/2011 05:59 PM, toxicious wrote:
> Hi guys,
> I am completely new to mono, only used it one time before to run a program
> on Ubuntu. I am a windows .NET developer but my interest for porting my apps
> to Linux has grown. I therefore ran MoMa and discovered that there is mainly
> one thing that needs to be fixed.
> I am calling a dll in my app (MediaInfoLib), this came up as a P/Invoke. I
> know MediaInfoLib is available for Ubuntu etc. but how do I use it? I mean
> is it just to replace the MediaInfoLib.dll in my to code to the name of the
> "dll-like" (.so?) for linux? That doesn't seem right. I am developing in
More information about the Mono-list