如何在C#中创建和使用DLL文件

How to create and use dll files in C#(如何在C#中创建和使用DLL文件)
本文介绍了如何在C#中创建和使用DLL文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在尝试学习如何用C#和C++编写和使用Windows的.dll文件。我想一旦我懂了其中一种语言,我就能很容易地理解另一种语言。我今天已经找了5个多小时了,但是没有找到一个可以工作的.dll导游。它们要么过时了,拒绝与我的编译器一起工作,要么就是彻头彻尾的垃圾。有谁知道有效指南吗?我使用的是开发人员C++和VC++2010。谢谢你帮我!:)

推荐答案

C#中的dll非常简单。

  1. 创建生成到DLL的新项目。
  2. 将对新DLL项目的引用添加到现有项目。
  3. 在DLL中使用标记为PUBLIC的类,就像它们是原始项目的一部分一样。

PEACYKINE展示了从C++DLL中导出类和函数的最基本方法。我建议使用一种更先进的技术。不是导出所需的每个类,而是从接口派生DLL中的所有类(至少具有一个纯虚方法的类)。然后导出一个工厂函数,该函数返回指向这些接口的指针。这减少了主可执行文件和DLL之间的耦合,因为您只需要共享接口,而不需要任何实现细节。

Code project有一篇关于此技术的好文章。

http://www.codeproject.com/KB/cpp/howto_export_cpp_classes.aspx

上述方法的一个好处是它极大地减少了编译时间。您可以完全重新实现DLL,而无需重新编译主应用程序。

这篇关于如何在C#中创建和使用DLL文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

error when trying to run an overloaded function with float parameters.(尝试运行带有浮点参数的重载函数时出错。)
C++ lt;lt; operator overloading without friend function(没有友元函数的C++lt;lt;运算符重载)
C++ - How does the compiler decide between overloaded functions with reference types as parameter?(C++-编译器如何决定使用引用类型作为参数的重载函数?)
How can I invoke an overloaded () operator on the keyword this?(如何对关键字this调用重载()运算符?)
How do I denote a pure virtual function in a UML class diagram?(如何在UML类图中表示纯虚函数?)
MPI parallel IO in ASCII format (How do I do it?)(ASCII格式的MPI并行IO(我该怎么做?))