表达式必须在指针上具有整数或未整合的枚举类型

时间:2013-04-18 01:52:41

标签: c++

我正在尝试打开一个用于记录用户名uNameAddr的链接 网址:http://zzz.com?username=MyNameIsJack
所以我需要像"http://zzz.com?username=" + uNameAddr那样做 但是我收到了一个错误。我想我的语法似乎错了?

curl_easy_setopt(curl, CURLOPT_URL, "http://zzz.com?username=" + uNameAddr);

整个代码:

char *uNameAddr = (char*) ExeBaseAddress + 0x34F01C;
printf("%s \n", uNameAddr);

CURL *curl;
CURLcode res;

curl = curl_easy_init();
if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, "http://zzz.com?username=" + uNameAddr);

    res = curl_easy_perform(curl);

    curl_easy_cleanup(curl);
}

更新

所以我试过了:

char username[512];
strcpy ( username, "http://zzz.com?username=" );
strcat ( username, uNameAddr );

但是在处理这部分时应用程序崩溃了。

curl_easy_setopt(curl, CURLOPT_URL, username);

2 个答案:

答案 0 :(得分:0)

 #include <iostream>
 #include <string>

 using namespace std;
 ...
 ...

 string str1 = "Hello world.";
 const char* cstr = " Goodbye.";

 string str2(cstr);
 string combined = str1 + str2;

答案 1 :(得分:0)

char username[512];
strcpy ( username, "http://zzz.com?username=" );
strcat ( username, uNameAddr );
  

但是在处理这部分时应用程序崩溃了。

不,编译器会在你进行函数调用之前给出一个错误,说uNameAddr未声明。这是交易:C ++不是一种随意乱搞的语言。这是一种非常严格的复杂语言。在编码时你不能捏造东西 - 你必须知道你输入的内容是完全正确的。

我建议你忘记你的函数调用,并试着找一个只打印出你的字符串的例子。一旦你开始工作,你可以尝试用字符串调用你的函数。