切换到宽版
  • 广告投放
  • 稿件投递
  • 繁體中文
  • 如何编译用户自定义DLL

    作者:Zemax China 来源:投稿 时间:2020-05-20 17:08 阅读:10008 [投稿]
    本文将介绍什么是用户自定义DLL以及如何在Visual Studio中编译用户自定义DLL。本教程是基于Visual Studio Community 2017 version 15.9而创建的,但这些步骤在更早的版本中也适用,版本间变化指出均有记载。本文也会讨论其他的编译器。

    在Configuration Properties…General中,确保“Configuration Type”已经设为“Dynamic Library (.dll)”,并且把“Character Set”设置为“Use Multi-Byte Character Set”。


    注意:更早版本的Visual Studio会需要本文开头提到额外下载包,且需要设置它门的“Platform Toolset”为Windows7.1SDK。

    然后,在Configuration Properties…C/C++…Code Generation选取“Runtime Library”。一般地,我们推荐使用Multi-threaded (/MT)或者Multi-threaded DLL (/MD)。

    Multi-threaded与Multi-threaded DLL之间的选择比较复杂,但大体上是兼容性和易用性之间的选择。如果该用户自定义DLL不依赖于其他库(library),那么使用Multi-Threaded runtime library意味着不考虑在本电脑上安装使用该DLL的C++ redistributable。如果在本DLL中,需要用到其他的库,那么就需要在此选取那个runtime库,而在绝大多数情况下,它都是Multi-Threaded DLL runtime。

    对于简单的不调用第三方库的DLL,Multi-threaded runtime是最佳选择。 


    一旦以上设定宣告完毕,点击OK来退出Properties对话框。

    检查代码错误

    现在,我们来检查并确保所有内容都能被母代码识别。如果该DLL是个用户自定义表面且source file路径不在{Zemax}DLLSurfaces文件夹,那么头文件“usersurf.h”会不被认可(由红色下划线表征)。


    分享到:
    扫一扫,关注光行天下的微信订阅号!
    【温馨提示】本频道长期接受投稿,内容可以是:
    1.行业新闻、市场分析。 2.新品新技术(最新研发出来的产品技术介绍,包括产品性能参数、作用、应用领域及图片); 3.解决方案/专业论文(针对问题及需求,提出一个解决问题的执行方案); 4.技术文章、白皮书,光学软件运用技术(光电行业内技术文档);
    如果想要将你的内容出现在这里,欢迎联系我们,投稿邮箱:service@opticsky.cn
    文章点评

    小小白啊:学习了(2020-09-01)

    顾鹏翔:学习了(2020-06-12)

    rige:学习了。。。。。(2020-05-30)

    jialunzhang:我在生成时遇见“无法启动.dll”文件的情况,请问这是为什么呢(2020-05-30)

    xiebin525:学习了,谢谢(2020-05-25)