Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2011, 09:54   #1
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию 'unsigned char [512]' в 'const char *'

прошу совета, вот код:
Код:
unsigned char WhereInstall[512];
...............................
char FullPath[100];
strcpy(FullPath, WhereInstall);
strcpy(FullPath, "\\1111");
вот собственно нужно сделать один массив
тип переменной WhereInstall поменять не могу
frommars вне форума Ответить с цитированием
Старый 02.07.2011, 10:33   #2
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию

Код:
unsigned char WhereInstall[512] = "Testing";

char FullPath[100];
strcpy(FullPath, (char *)WhereInstall);
strcpy(FullPath, "\\1111");
Код:
unsigned char WhereInstall[512] = "Testing";

char FullPath[100];

void *ref = WhereInstall;

strcpy(FullPath, static_cast<char *>(ref));
strcpy(FullPath, "\\1111");
Код:
unsigned char WhereInstall[512] = "Testing";

char FullPath[100];
strcpy(FullPath, reinterpret_cast<char *>(WhereInstall));
strcpy(FullPath, "\\1111");
А почему не использовать вместо unsigned char[512] массив char[512]?

Последний раз редактировалось Dogmat; 02.07.2011 в 10:42.
Dogmat вне форума Ответить с цитированием
Старый 02.07.2011, 10:41   #3
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

спасибо конечно, но не работает(компилятор даже два раза предупредил, но всё таки собрал код)
результат: \1111

использую RegOpenKeyEx
frommars вне форума Ответить с цитированием
Старый 02.07.2011, 10:47   #4
Dogmat
Пользователь
 
Регистрация: 12.06.2008
Сообщений: 76
По умолчанию

Так извините, значит я не понял в чем проблема, я думал у вас просто проблема с приведением типа. Ну пожалуйста, тогда так:

Код:
#include <string.h>
#include <stdio.h>

int main(int argc, char* argv[])
{
    unsigned char WhereInstall[512] = "Testing";

    char FullPath[100];
    int offset = strlen((char *)WhereInstall);
   
    strcpy(FullPath, (char *)WhereInstall);
    strcpy(FullPath + offset, "\\1111");

    printf("%s", FullPath);
    getchar();

    return 0;
}
Dogmat вне форума Ответить с цитированием
Старый 02.07.2011, 10:47   #5
Nedward
Пользователь
 
Регистрация: 26.06.2011
Сообщений: 85
По умолчанию

Эх, опередили
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (c) Martin Golding

Последний раз редактировалось Nedward; 02.07.2011 в 10:50.
Nedward вне форума Ответить с цитированием
Старый 02.07.2011, 10:51   #6
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

всем спасибо что откликнулись, вопрос решён
frommars вне форума Ответить с цитированием
Старый 02.07.2011, 11:25   #7
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

новый вопрос появился(всё в ту же тему):
Код:
char inBufName[80], inBufPWD[80]; 
unsigned char ComputerName[512];
...................................................................
char strToSend[256] = "index.php?pc=";
strcpy(strToSend, ComputerName);
strcpy(strToSend, "&name=");
strcpy(strToSend, inBufName);
strcpy(strToSend, "&pwd=");
strcpy(strToSend, inBufPWD);
printf(strToSend);
выше показанным способом не получилось
frommars вне форума Ответить с цитированием
Старый 02.07.2011, 13:25   #8
zotox
Форумчанин
 
Регистрация: 09.09.2008
Сообщений: 395
По умолчанию

Прочитайте про функцию strcat.
Должно что-то типа такого получится:
char strToSend[256] = "index.php?pc=";
strcat(strToSend, ComputerName);
strcat(strToSend, "&name=");
strcat(strToSend, inBufName);
strcat(strToSend, "&pwd=");
strcat(strToSend, inBufPWD);
zotox вне форума Ответить с цитированием
Старый 02.07.2011, 13:37   #9
frommars
Форумчанин
 
Регистрация: 02.07.2011
Сообщений: 144
По умолчанию

Цитата:
Сообщение от zotox Посмотреть сообщение
Прочитайте про функцию strcat.
Должно что-то типа такого получится:
char strToSend[256] = "index.php?pc=";
strcat(strToSend, ComputerName);
strcat(strToSend, "&name=");
strcat(strToSend, inBufName);
strcat(strToSend, "&pwd=");
strcat(strToSend, inBufPWD);
у меня вот с этим на второй строчке проблема:
strcat: невозможно преобразовать параметр 2 из 'unsigned char [512]' в 'const char *'

проблему решил
frommars вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка Could not find a match for 'Pos(TStringStream *,const char *)' bulldog5293 C/C++ Сетевое программирование 1 09.04.2011 12:19
unsigned char в array<Byte> Artemprodigy Visual C++ 0 23.03.2011 11:19
перевод в string из unsigned char Dimarik Общие вопросы C/C++ 5 22.03.2011 22:46
преобразование типов char-const char student101 Помощь студентам 8 01.12.2010 20:45
Конвертирование из const char*(System::String) в LPCWSTR Eros Общие вопросы .NET 1 27.05.2010 12:36