Maison >développement back-end >Tutoriel C#.Net >C# appelle la DLL de la bibliothèque de liens dynamiques C

C# appelle la DLL de la bibliothèque de liens dynamiques C

黄舟
黄舟original
2017-02-27 11:28:102296parcourir

J'ai trouvé deux façons de résoudre le problème au cours du processus : l'une est une bibliothèque de dll créée par du C non géré, qui doit être appelée avec une méthode statique. Cette méthode ne peut pas être directement référencée dans la référence C#, mais doit être appelée de manière statique. D'autres blogs l'ont déjà présentée en détail. La seule chose qui doit être ajoutée est que le fichier C# doit être :

.
using System.Runtime.InteropServices;

La méthode [DllImport] ne peut être appelée qu'après cela.

Une autre méthode consiste à utiliser le CLR directement pour générer une bibliothèque de dll C gérée.

Processus de création

La routine est la suivante
C dll :

// CPPlibdemo.h
#pragma once

using namespace System;

namespace CPPlibdemo {

	public ref class Class1
	{
		// TODO: Add your methods for this class here.
	public:
			String ^getgreating(){

			return "hello world";
		}
	};
}

Langage C# :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using CPPlibdemo;

namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 clrdemo = new Class1();

            Console.Write(clrdemo.getgreating());
            Console.ReadLine();
        }
    }
}

Ce qui précède est le contenu de la dll de la bibliothèque de liens dynamiques C# appelant C. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn