开发者社区 问答 正文

在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 223 分享 版权
2 条回答
写回答
取消 提交回答
  • 热衷于探索AI前沿技术,擅长AI与Mass平台相关的产品推广与代理类文章评测宣传,欢迎交流。 文章结尾联系我。MCP开发者 | Agent开发者 | RPA开发者 | 阿里云社区专家博主|支付宝社区优秀创作博主|腾讯云创作之星|极星会KOL|影刀+实在 双RPA高级认证|51CTO TOP红人
    2025-02-09 19:35:10
    赞同 148 展开评论
  • 北京阿里云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
    赞同 347 展开评论
问答分类:
C++
问答标签:
问答地址:
关联地址: