Ошибка Visual C C2146

#url #variables #c -cli #browser

#url #переменные #c -cli #браузер

Вопрос:

все, я пытался скомпилировать программу, используя C / CLI, чтобы проверить мои запасы, но я столкнулся с ошибкой, когда я поместил переменную в URL. Кто-нибудь может мне помочь, пожалуйста?

 private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
    this->webBrowser1->Navigate("http://finance.yahoo.com/echarts?s="num".HK Interactive#chart1:symbol="num".hk;range=1d;indicator=volume;charttype=line;crosshair=on;ohlcvalues=0;logscale=on;source=undefined");
}
  

О, и, кстати, этот код взят из «Приложения Windows Forms», а имя переменной — «num». Опять же, я был бы признателен за любую помощь, если это возможно. Спасибо.

Комментарии:

1. Вы пытаетесь вставить значение num в свой URL-адрес, или вы пытаетесь на самом деле поместить строку «num» в свой URL-адрес?

2. Каково точное сообщение об ошибке?

3. Я отредактировал теги — это C / CLI, не C .

4. Извините всех, из-за моего простого (слишком простого) вопроса я не могу предоставить вам всю необходимую информацию. Пожалуйста, проверьте мой другой вопрос, если можно (я задал только 2 вопроса). Спасибо.

Ответ №1:

Похоже, вы ничего не делаете для построения строки. Я никогда не занимался управляемым C , но я предполагаю, что вы не можете сделать это: "http://finance.yahoo.com/echarts?s="num и получить то, что вы хотите. В C # вы могли бы просто использовать operator : "http://finance.yahoo.com/echarts?s=" num , или использовать StringBuilder, или String .Форматирование. Я бы предположил, что в управляемом C есть нечто подобное.

Комментарии:

1. Я уже создал строку для своей программы, и я хочу вставить значение «num» в URL. О, и значение «num», если из текстового поля. Спасибо за быстрые ответы, и может кто-нибудь, пожалуйста, опубликовать пример кода, который мне нужно использовать? Еще раз спасибо за ответы.

2. Что означает «уже построенная строка» в этом случае? Это статическая строка (за исключением того, что вам нужно подключить значение num) или динамически построенная строка?

3. Хорошо, я приношу извинения. Что я имел в виду под «уже построенной строкой», так это то, что я вставил int num = int:: Parse(textBox1->Text); в код. Спасибо за помощь! 🙂

4. В дополнение к этой проблеме я забыл упомянуть еще одну ошибку (извините). Вот все ошибки, которые я получил: C2146: синтаксическая ошибка: отсутствует ‘)’ перед идентификатором ‘num’ C2059: синтаксическая ошибка : ‘)’ Все они из одной строки, которая является: this->webBrowser1->Navigate("http://finance.yahoo.com/echarts?s="num".HK Interactive#chart1:symbol="num".hk;range=1d;indicator=volume;charttype=line;crosshair=on;ohlcvalues=0;logscale=on;source=undefined"); . Еще раз спасибо за всю помощь!

5. Я думаю, проблема по-прежнему в том, что я сказал — вы не можете просто поместить имя переменной в середину связанных строк, чтобы заставить строки добавляться. sprintf — это способ сделать это со стандартной строкой C ( cplusplus.com/reference/clibrary/cstdio/sprintf ). Я недостаточно хорошо знаю строки stl, чтобы понять, как они учитываются. В C # используется System. Формат, который вы, возможно, сможете использовать в управляемом C .