warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略

作者 : admin 本文共906个字,预计阅读时间需要3分钟 发布时间: 2024-06-16 共1人阅读

文章目录

    • warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略
    • 概述
    • 笔记
    • 备注
    • END

warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略

概述

基于ATL的COM DLL导出函数,无法用__declspec(dllexport)直接在函数上标记为导出函数。
只能用.def加入工程配置中。
warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略插图
原始工程是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
warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略插图(1)

https://learn.microsoft.com/zh-cn/cpp/build/exporting-from-a-dll-using-def-files?view=msvc-140
微软给的例子,已经不用DESCRIPTION作为关键字了。
warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略插图(2)
对于新版VS(>= vs2013)来说, DESCRIPTION只是保留字,不是关键字。
https://learn.microsoft.com/zh-cn/cpp/build/reference/reserved-words?view=msvc-140
warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略插图(3)

备注

现在msdn上的帮助,只从VS2015开始。
旧版的VS已经查不到对应资料了。

END

本站无任何商业行为
个人在线分享 » warning LNK4017: DESCRIPTION 语句不支持目标平台;已忽略
E-->