C#调用dll的简单demo(托管)
2017-04-23 15:20
190 查看
以下例子是托管下的,非托管的要用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)--反射
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)--反射
相关文章推荐
- c# winform程序调用托管dll(c#的dll),使用"添加引用"和动态加载dll
- [轉]c#简单调用DELPHI DLL封装窗体
- C#调用C++写的DLL的简单示例
- 【c++】C#调用C++ DLL 托管方式
- C#中如何调用托管的DLL
- C#创建和调用托管的DLL
- C# DllImport 系统调用使用详解 托管代码的介绍 EntryPoint的使用
- 非托管C++代码调用C#编写的dll方法
- C# 调用Dll中非托管C++代码,函数参数的类型对照
- C++调用C# dll简单介绍
- 非托管C++代码调用C#编写的dll方法
- C#中调用dll(托管和非托管)的方法
- C#调用Delphi的dll之详解-完整版_附有可下载Demo
- vc托管调用c#dll
- [整理]c#简单调用DELPHI DLL封装窗体
- C# 调用Dll中非托管C++代码时,函数参数的类型对照
- 一个简单的能被C#调用的C++的dll
- C# 调用 VC++ 托管DLL,参数传结构体时
- [转]C# 之DLL调用(托管与非托管)
- 在C#调用C++的DLL简析(二)—— 生成托管dll