开发者社区> 问答> 正文

在vs2022中,使用c++调用阿里云短信V1.0版本生成的示例报错,错误如下:

错误 C4996 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. test-2-alibaba D:\Visual Studio\Projects\test-2-alibaba D:\Visual Studio\Projects\test-2-alibaba\test-2-alibaba.cpp 19

展开
收起
游客yibpvcmglu6r4 2025-01-09 21:28:50 11 0
1 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    在源文件的开头(所有头文件之前)添加以下宏定义:

    #define _CRT_SECURE_NO_WARNINGS 1
    

    使用更安全的替代函数
    将getenv函数替换为_dupenv_s函数,这是一个更安全的版本。修改代码如下:

    
    #include <stdlib.h>
    #include <errno.h>
    
    char* accessKeyId = nullptr;
    char* accessKeySecret = nullptr;
    _dupenv_s(&accessKeyId, &accessKeySecret, "ALIBABA_CLOUD_ACCESS_KEY_ID");
    _dupenv_s(&accessKeyId, &accessKeySecret, "ALIBABA_CLOUD_ACCESS_KEY_SECRET");
    
    AlibabaCloud::Credentials credential(accessKeyId, accessKeySecret);
    
    // 释放分配的内存
    free(accessKeyId);
    free(accessKeySecret);
    

    image.png

    2025-01-10 09:21:02
    赞同 1 展开评论 打赏
问答分类:
C++
问答标签:
问答地址:
关联地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载