Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Strick
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 12
#1

Помощь с фиксом ошибок - C++

15.05.2013, 19:38. Просмотров 334. Ответов 6
Метки нет (Все метки)

Код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// ConsoleApplication2.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <stdio.h>
#define  OS_TYPE  0xF0    //0xF0 - Windows, 0x0F - Linux
 
 
#if   OS_TYPE & 0xF0   // Windows
#include <Windows.h>
 
// MAX_COMPUTERNAME_LENGTH
int  get_computer_name(char*  name, unsigned long size) {
     return GetComputerName(name, &size);
}
 
#else if OS_TYPE & 0x0F   // Linux
#include <unistd.h>
#include <sys/param.h>
 
// MAXHOSTNAMELEN
int  get_computer_name(char*  name, unsigned long size) {
     return gethostname(name, size);
}
 
#endif
 
 
 
 
int main(int argc, char* argv[])
{
   char name[255] = { '\0' };
   get_computer_name(name, 255);
   printf("computer name: %s\n", name);
 
   getchar();
   return 0;
}
Ошибка

Кликните здесь для просмотра всего текста
1>------ Построение начато: проект: ConsoleApplication2, Конфигурация: Debug Win32 ------
1> stdafx.cpp
1> ConsoleApplication2.cpp
1>c:\users\admin\desktop\consoleapplication2\consoleapplication2\consoleapplication2.cpp(14): error C2664: GetComputerNameW: невозможно преобразовать параметр 1 из "char *" в "LPWSTR"
1> Типы, на которые указывают указатели, не связаны; для преобразования требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========


Как исправить? Пользуюсь Visual Studio

Добавлено через 49 минут
ап.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2013, 19:38     Помощь с фиксом ошибок
Посмотрите здесь:

Помощь с фиксом ошибок - C++
#include &lt;stdafx.h&gt; //#define IS_WIN //Заккоментить этот дефайн, если для Linux-a #include &lt;stdio.h&gt; #include &lt;pdh.h&gt; ...

Исправлеие ошибок - C++
Описать структуру с именем PRICE, содержащую следующие поля: название товара, название магазина, в котором продаётся товар, стоимость...

Поиск ошибок - C++
Мне нужно написать программу,которая создает текстовый файл(.txt) в котором записаны вводимые данные. Например: Nazvanie: Moskow ...

Много ошибок - C++
#include &lt;iostream&gt; using namespace std; double F(double X){ return (pow((sin(X) - 2 * cos(2 * X)), 2)); } int main() { ...

Предотвращение ошибок - C++
Есть такая программа в С++: #include&lt;iostream.h&gt; #include&lt;stdio.h&gt; int main(void) { char c; float f; cout&lt;&lt;&quot;Input...

Исправление ошибок - C++
Есть задание : Во введенной строке заменить все пробелы на запятые, а запятые на точки. Посчитать количество запятых во введенной строке....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
15.05.2013, 19:43     Помощь с фиксом ошибок #2
C++
1
int  get_computer_name(char  &name, unsigned long size)
Добавлено через 1 минуту
или уж если хотите через указатель, то соответственно name надо объявить как указатель!
Strick
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 12
15.05.2013, 19:44  [ТС]     Помощь с фиксом ошибок #3
C++
1
2
3
4
5
int  get_computer_name(char*  name, unsigned long size) 
{
     int  get_computer_name(char  &name, unsigned long size);
     return
}
Код
error C2059: синтаксическая ошибка: }
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
15.05.2013, 19:47     Помощь с фиксом ошибок #4
а что в return?
Strick
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 12
15.05.2013, 19:52  [ТС]     Помощь с фиксом ошибок #5
Изначально было так:
C++
1
2
3
4
5
int  get_computer_name(char*  name, unsigned long size) 
{
     int  get_computer_name(char  &name, unsigned long size)
 
}
Код
error C2143: синтаксическая ошибка: отсутствие ";" перед "}"
исправил на
>>
C++
1
2
3
4
5
int  get_computer_name(char*  name, unsigned long size) 
{
     int  get_computer_name(char  &name, unsigned long size);
 
}
Код
error C4716: get_computer_name: должна возвращать значение
Ну а потом добавил return
metaluga145
243 / 244 / 20
Регистрация: 08.04.2013
Сообщений: 927
15.05.2013, 19:58     Помощь с фиксом ошибок #6
Strick, так после return должно быть то,что будет возвращено.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.05.2013, 22:07     Помощь с фиксом ошибок
Еще ссылки по теме:

Разбор ошибок - C++
Задача - Для целочисленной квадратной матрицы найти число элементов , кратных К и наибольший элемент из найденных кратных числу К...

исправление ошибок - C++
//funkcijas1 #include &lt;iostream&gt; using namespace std; int main() { int i, fact=1, n; cout &lt;&lt;&quot;Введите целое...

Описание ошибок. - C++
Ребят можете поделится ссылкой - может есть ресурс где можно почитать про ошибки выдаваемые интерепретатором? Чтобы с разбором так сказать...

Фикс ошибок - C++
// ConsoleApplication1.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &quot;windows.h&quot; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Strick
0 / 0 / 0
Регистрация: 15.05.2013
Сообщений: 12
15.05.2013, 22:07  [ТС]     Помощь с фиксом ошибок #7
Извиняюсь за нубство, но разобраться не могу.
Сейчас перечитал еще раз и понял что неправильно заменил функцию.
Исправил, ошибки:
C++
1
2
3
consoleapplication2.cpp(16): error C2664: GetComputerNameW: невозможно преобразовать параметр 1 из "char" в "LPWSTR"
1>          Для преобразования из целого типа в указатель требуется reinterpret_cast, приведение в стиле С или приведение в стиле функции
consoleapplication2.cpp(36): error C2664: get_computer_name: невозможно преобразовать параметр 1 из "char [255]" в "char &"
Код строчек:
C++
1
2
16: return GetComputerName(name, &size);
36: get_computer_name(name, 255);
Добавлено через 2 минуты
C++
1
2
3
4
int  get_computer_name(char  &name, unsigned long size)
{
     return GetComputerName(name, &size);
}
C++
1
2
3
4
5
6
7
8
9
int main(int argc, char* argv[])
{
   char name[255] = { '\0' };
   get_computer_name(name, 255);
   printf("computer name: %s\n", name);
 
   getchar();
   return 0;
}
Добавлено через 1 час 5 минут
ап.

Добавлено через 44 минуты
ап.
Yandex
Объявления
15.05.2013, 22:07     Помощь с фиксом ошибок
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru