C:不推荐使用从字符串常量转换为’LPSTR {aka char *}'[-Wwrite-strings] – 警告.怎么避免?

weixin_38064085 2019-09-12 01:57:21
在编译C代码时,我收到此警告: deprecated conversion from string constant to ‘LPSTR {aka char*}’ [-Wwrite-strings] &pi)) // Pointer to PROCESS_INFORMATION structure.      ^ 代码是: STARTUPINFO si; memset(&si, 0, sizeof (STARTUPINFO)); si.cb = sizeof (STARTUPINFO); si.dwFlags = STARTF_USESHOWWINDOW; si.wShowWindow = FALSE; PROCESS_INFORMATION pi; memset(&pi, 0, sizeof (PROCESS_INFORMATION)); if (!CreateProcess("C:\\Program Files\\Java\\jre7\\bin\\javaw.exe", " -jar install.jar", // Command line. NULL, // Process handle not inheritable. NULL, // Thread handle not inheritable. 0, // Set handle inheritance to FALSE. CREATE_NO_WINDOW, // ON VISTA/WIN7, THIS CREATES NO WINDOW NULL, // Use parent's environment block. NULL, // Use parent's starting directory. &si, // Pointer to STARTUPINFO structure. &pi)) // Pointer to PROCESS_INFORMATION structure. //Warning comes from this line - variable &pi { printf("CreateProcess failed\n"); return 0; } 是否可以采取措施避免这种情况(我的意思是不使用 – 抑制警告)?
...全文
551 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38069603 2019-09-12
  • 打赏
  • 举报
回复
编译器告诉你,CreateProcess的第二个参数是char *类型,但是你传递了const char *.换句话说,CreateProcess的第二个参数需要一个可修改的缓冲区,但是你传递的是一个不可修改的文字. 声明一个可修改的字符串,如下所示: char cmdline[] = "-jar install.jar";
内容概要:本文研究了光伏与储能系统在配电网中的双层优化配置问题,旨在解决分布式能源的选址与定容难题。通过构建双层优化模型,上层以系统综合成本最小为目标进行光伏和储能的选址定容,下层以最优潮流计算评估方案的运行效果,实现规划与运行的协同优化。研究采用Matlab进行代码实现,并复现了SCI一区论文的先进算法,有效提升了配电网对分布式能源的接纳能力,降低了网络损耗,提高了电压稳定性。该方法为高比例可再生能源接入背景下的配电网规划提供了科学的技术支撑。; 适合人群:具备电力系统基础知识,从事新能源、配电网规划、优化算法研究的科研人员及工程师,以及电气工程、自动化等相关专业的研究生。; 使用场景及目标:① 掌握双层优化模型在电力系统规划中的建模思想与求解技巧;② 学习先进的智能优化算法(如遗传算法、粒子群算法等)在复杂非线性问题中的应用;③ 复现高水平学术论文成果,提升科研能力和代码实现水平。; 阅读建议:此资源结合了理论模型、算法实现与工程应用,建议读者在学习时重点关注双层模型的构建逻辑、上下层之间的交互机制以及Matlab代码的具体实现流程,并尝试对不同参数和场景进行调试与仿真,以深化理解。

477

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧