Visual Studio 编译代码的时候提示dll链接不一致,如下图:

1>f:xxxxxxxxxxxxxxxxxxxx\dopra\securec.h(169) : warning C4273: “strncat_s”: dll 链接不一致
1> E:\Microsoft Visual Studio 8\VC\include\string.h(138) : 参见“strncat_s”的前一个定义
这里的提示就是说在x\dopra\securec.h和\VC\include\string.h中都有strncat_s的定义,dll链接中可能链接的是\VC\include\string.h中的,而我们代码中引用的是第一个,所有会出现这个告警。
这里其实有几种方法处理:
1、屏蔽告警,这个我在另一篇文章中有写。
2、你可以自己编一个dll文件,然后在Visual Studio中去引用。

这种方法可能不能彻底解决问题,你要这么用,首先就要确定你没有引用VC的库文件。
不然可能会提示你其他的告警(这个是猜测的,毕竟同一个函数在两个dll中都有)
3、修改下头文件的引用。
头文件引用可以在下面的地方去修改:

在附加包含目录中将你的路径去掉,用VC自己的库文件。
当然了,记得点下全部保存,否则可能你的修改不会立即生效,反正vs2005是这样。

解决VS dll链接不一致警告

本文解决VisualStudio编译时出现的dll链接不一致警告,详细分析strncat_s函数在不同头文件中定义冲突的原因,并提供三种解决方案:屏蔽告警、自编dll引用或修改头文件引用。
6428

被折叠的 条评论
为什么被折叠?



