Biblioteka C w C#?

Witam,

mam takie pytanie: czy możliwe jest mając binarkę biblioteki napisanej w C, wykorzystać ją w projekcie w C#? Jeśli tak, to mógłbym prosić o jakieś wskazówki? Z góry dziękuję.

Musisz funkcję z takiej biblioteki zadeklarować w kodzie C# za pomocą atrybutu DllImport (w nim podajesz nazwę pliku dll) oraz słowa kluczowego extern.

using System;

using System.Runtime.InteropServices;


class Example

{

    // Use DllImport to import the Win32 MessageBox function.

    [DllImport("user32.dll", CharSet = CharSet.Unicode)]

    public static extern int MessageBox(IntPtr hWnd, String text, String caption, uint type);


    static void Main()

    {

        // Call the MessageBox function using platform invoke.

        MessageBox(new IntPtr(0), "Hello World!", "Hello Dialog", 0);

    }

}

Przykład jest stąd: http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.dllimportattribute.aspx

Jak najbardziej jest to możliwe, choć sam tego nie robiłem. Przejrzyj poniższe linki (może być w takiej kolejności w jakiej podaje):

  1. http://www.codeproject.com/KB/cs/usecdlllibincs.aspx

  2. http://www.brainbell.com/tutors/C_Sharp … d_Code.htm

  3. http://msdn.microsoft.com/en-us/library/sd10k43k.aspx

Ostatni link jest najbardziej aktualny, bo odwołuje się do .NET 4. Niektóre z funkcji użytych w dwóch pierwszych linkach mogą już być “obsolete”, ale i tak warto je przejrzeć, bo to wydaje się to być w miarę szybki start. To że mogą być “obsolete” nie znaczy, że są :slight_smile:

Dziękuję za pomoc, jeszcze dzisiaj się za to wezmę :slight_smile: