文章目录
- warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略
- 概述
- 笔记
- 备注
- END
 
warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略
概述
基于ATL的COM DLL导出函数,无法用__declspec(dllexport)直接在函数上标记为导出函数。
 只能用.def加入工程配置中。
 
 原始工程是VC6的。
; server.def
; defined interface to export
LIBRARY "SERVER"
; warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略
DESCRIPTION "server.dll"
EXPORTS
	DllGetClassObject PRIVATE
	DllCanUnloadNow PRIVATE
	DllRegisterServer PRIVATE
	DllUnregisterServer PRIVATE
现在用VS2019编译, 工具链降到VS2013都有这个警告。
 查了一下,大家都说注释掉DESCRIPTION那行就行。试了一下,确实可以。
 但是,为啥呢?
 难道新版VS的编译器已经不支持.def文件中的DESCRIPTION关键字了么?
 查了一下,果真如此。
笔记
https://learn.microsoft.com/zh-cn/cpp/build/reference/module-definition-dot-def-files?view=msvc-140
 
https://learn.microsoft.com/zh-cn/cpp/build/exporting-from-a-dll-using-def-files?view=msvc-140
 微软给的例子,已经不用DESCRIPTION作为关键字了。
 
 对于新版VS(>= vs2013)来说, DESCRIPTION只是保留字,不是关键字。
 https://learn.microsoft.com/zh-cn/cpp/build/reference/reserved-words?view=msvc-140
 
备注
现在msdn上的帮助,只从VS2015开始。
 旧版的VS已经查不到对应资料了。

![Linux基础命令[29]-chown](https://img-blog.csdnimg.cn/direct/a124b963630c49c5b074e0c9ad831218.png)














![[图解]建模相关的基础知识-09](https://img-blog.csdnimg.cn/direct/564084005134496695a01330e896bda1.png)


