Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio 2017链接器中出现错误C4789 这是64位Windows 7、Visual Studio 2017、C++项目。_C++_Visual Studio - Fatal编程技术网

Visual Studio 2017链接器中出现错误C4789 这是64位Windows 7、Visual Studio 2017、C++项目。

Visual Studio 2017链接器中出现错误C4789 这是64位Windows 7、Visual Studio 2017、C++项目。,c++,visual-studio,C++,Visual Studio,当我使用编译器选项/sdl进行发布构建时,我得到了错误4789(如果未启用/sdl,这是一个警告) 我想找出错误的原因。阅读C4789上的MS文档表明,有一个函数指定了操作长度>目标长度。memset、wmemset、memcpy或strcpy。此外,在编译/链接时必须知道这一点,这意味着目标大小和操作长度都是常量 我的困难在于,在我的项目中,命名函数的使用有数百种,而链接器无法识别哪一种是错误的。我还只搜索了那些目的地名为“buffer”的,没有运气的 有没有办法缩小错误原因的范围?您有多少个

当我使用编译器选项
/sdl
进行发布构建时,我得到了错误4789(如果未启用
/sdl
,这是一个警告)

我想找出错误的原因。阅读C4789上的MS文档表明,有一个函数指定了操作长度>目标长度。
memset
wmemset
memcpy
strcpy
。此外,在编译/链接时必须知道这一点,这意味着目标大小和操作长度都是常量

我的困难在于,在我的项目中,命名函数的使用有数百种,而链接器无法识别哪一种是错误的。我还只搜索了那些目的地名为“
buffer
”的,没有运气的


有没有办法缩小错误原因的范围?

您有多少个262144字节的缓冲区?如果我没有弄错的话,您的错误线索是:corecrt_memcpy_s.h(50):您可能会认为memcpy有问题吗?你可以找到这个源并增加缓冲区大小……@退休Ninja:我找不到任何。@ T T:函数是调用CCORRTHYMEMPYPYS的函数,CycRTLMMECPYPY是C++运行时的一部分。如何在代码中找到有问题的函数?根据MSDN,我命名的所有4个函数都可能出错。这让我认为这是链接器缓冲区和bug,所以我做了一些查找,找到了一个链接,其中包含一个您可能可以使用的解决方案。。。你必须在讨论中仔细阅读找到工作的方法。祝你好运
1>Finished searching libraries
1>Generating code
1>c:\program files (x86)\windows kits\10\include\10.0.10586.0\ucrt\corecrt_memcpy_s.h(50): error C4789: buffer 'buffer' of size 262144 bytes will be overrun; 262143 bytes will be written starting at offset 2
1>All 2506 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.