C#调用dll的简单demo(托管)

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sibaison/article/details/70502328

以下例子是托管下的,非托管的要用DllImport

1.新建一个类型为类库的工程,默认的工程名为ClassLibrary1,我这里就不改了

2.添加函数:

  public static void Hello()
  {
            Console.WriteLine("Hello World!");
   }

3.如图:


4.选择菜单栏生成->生成ClassLibrary1,然后在bin目录下的debug目录下会生成ClassLibrary1.dll与ClassLibrary1.pdb

5.创建新的win32工程,系统默认命名为ConsoleApplication1,新建工程后,把第4步生成的dll和pdb文件拷贝进ConsoleApplication1工程的bin下的debug目录下

6.在解决方案下找到项目ConsoleApplication1项目,右键弹出菜单选择添加引用,把ClassLibrary1.dll添加到引用中去

7.在Program.cs中using ClassLibrary1命名空间

8.创建对象,调用静态函数 ClassLibrary1.Class1 cla = new Class1();Class1.Hello();

9.截图如下:



10.按F5运行结果如图



---------------------------------------------------------------------------------------------

当Hello函数的访问修饰符internal时呢,由于internal是限定在ClassLibrary1程序集内的函数调用的,而ConsoleApplication1程序集怎么调用它呢,有个简单的方法:在ClassLibrary1程序集的AssemblyInfo.cs文件中添加[assembly: InternalsVisibleTo("ConsoleApplication1")],然后ConsoleApplication1又发现可以正常调用Hello函数了。


---------------------------------------------------------------------------------------------

另一种调用dll的方式是利用c#的反射,详细的demo看我的博客C#调用dll的简单demo(2)--反射


展开阅读全文

没有更多推荐了,返回首页