c - 如何解析 “invalid conversion from ' const char *' to ' LPSTR {aka char* }' [-fpermissive] "

标签 c winapi lpstr

我使用 Qt Creator 和这段代码:

CreateProcess(NULL,string("curl -F \"api_key=XXX\" -F \"filetype=mp3\" -F \"track=@"+execpath+"\\sound.mp3\" \"http://developer.echonest.com/api/v4/track/upload\"").c_str(), NULL, NULL, TRUE, CREATE_NO_WINDOW, NULL, NULL, &startupinfo, &procinfo); // Send sound.mp3 to be analyzed by Echonest

产生这个问题:

invalid conversion from 'const char*' to 'LPSTR {aka char*}

如何解决?

注意我已经定义了:

DEFINES -= UNICODE

在我的 .pro 文件中

最佳答案

您需要阅读有关 CreateProcess() 的文档小心。第二个参数标记为 inout,这意味着该函数将(在这种情况下,可以)修改指向的值。

如果你打算按照你在评论中提到的方式进行转换,最好不仅添加评论而且可能显式使用 ANSI 函数(因此调用 CreateProcessA())以防万一。

此外,Qt 有自己的创建进程的方式。可以引用QProcess文档。

关于c - 如何解析 “invalid conversion from ' const char *' to ' LPSTR {aka char* }' [-fpermissive] ",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21957973/

相关文章:

c - 我正在编写一个程序来执行先来先服务算法,它显示段错误

C 链表在指针传递时被修改

c++ - WinAPI:OpenProcess() 返回错误 5,并为主机进程启用了 SeDebugPrivilege

c++ - WINAPI - 在不成为所有者的情况下关闭互斥锁

c++ - SendKeys 不适用于预定义的 LPSTR。

C - 函数中的结构分配

c - 整数变量中总是垃圾

c++ - 有没有办法为另一个进程设置 token ?

c# - 使用 C# 的 LPStr 返回值调用 C++ 函数