首页 > 代码库 > 解决 “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符 类型库符号与系统符号冲突问题
解决 “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符 类型库符号与系统符号冲突问题
今天在VS工程当中引入一个组件,编译的时候出现警告, “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符。虽然只是一个警告,但看着实在不爽,更重要的是,警告在某些情况下,可能正是bug的来源,并且这类bug往往非常难以定位。废话不多话,下面来解决问题。
看编译器给出的提示,是告诉我们,类型库当中的符号和系统符号有重名,同时也给出了解决方法,就是使用rename。怎么个rename法呢?其实很简单,我们在导入类型类的时候,直接#import语句后面,通过rename("conflictName","newName")命名,将我们类型库当中冲突的符号,替换成新的符号newName,如此一来就可以解决符号重名问题。
以下是例子:
#import ".\\my.dll" no_namespace rename("MoveFile","myMoveFile") rename("CopyFile", "myCopyFile")
也可以用"\"分行写,在VS里," \ " 和makefile里功能是一样的,将一行语句分成多行来写,如下:
#import ".\\my.dll" no_namespace \
rename("MoveFile","myMoveFile") \
rename("CopyFile", "myCopyFile") \
因为我的工程里有很多重名符号,分行写更加清晰。
解决 “MoveFile”: 类型库“XXX.dll”中的标识符已经是宏;使用“rename”限定符 类型库符号与系统符号冲突问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。