Call function from DLL?

Dominik Antal picture Dominik Antal · Feb 16, 2011 · Viewed 93.3k times · Source

I'm new to C# and I'm trying to learn to usage of DLLs. I'm trying to wrap my objects in a DLL, and then use it in my program.

public class Foo   // its in the DLL
{
   public void Bar()
   {
      SomeMethodInMyProgram();
   } 
}

So I try to pack this to a DLL but I can't, because compiler doesn't know what the SomeMethodInMyProgram() is.

I would like to use it like:

class Program // my program, using DLL
{
    static void Main(string[] args)
    {
       Foo test = new Foo();
       test.Bar();
    }
 } 

Answer

Tom Stickel picture Tom Stickel · Apr 2, 2013

Depends on what type of DLL. Is this built in .NET ? if it is unmanaged code then here is an example otherwise the Answer from Rob will work.

Unmanaged C++ dll example:

using System;
using System.Runtime.InteropServices;

You may need to use DllImport

[DllImport(@"C:\Cadence\SPB_16.5\tools\bin\mpsc.dll")]
static extern void mpscExit();

or

[DllImport("user32.dll", CharSet = CharSet.Unicode)]
public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);

Then each of those are called like this:

// a specific DLL method/function call
mpscExit();
// user32.dll is Microsoft, path not needed
MessageBox(new IntPtr(0), "Test", "Test Dialog", 0);