Сложение строк, путь кук, консоль

  • Автор темы Автор темы Satell
  • Дата начала Дата начала
S

Satell

1. есть динамический массив char** array; куда записываются строки из файла ф-ей getline
имеющие вид www.adres.com, нужно прибавить к этим строкам http:// в начале

такая конструкция выдаёт ошибку, как сделать правильно?
char* setpath;
char setpath2[300];

setpath="http://";
strcpy(setpath2,array[j]);
strcat(setpath,setpath2);

2. есть ли функция для определения пути директории с куками или имени компьютера, т.к. он от него зависит

C:\Documents and Settings\compname\Cookies\compname@www.adres[1].txt

3. есть консольное приложение Visual studio VC++ 5, как сделать его вообще чтобы никакого окна небыло?
 
1. Синтаксис вроде нормальный. Что за ошибка?
2. SHGetFolderLocation, SHGetFolderPath, SHGetSpecialFolderLocation, SHGetSpecialFolderPath. CSIDL = CSIDL_COOKIES.
3. Ну самый очевидный способ решения, это взять хэндл окна консоли и по нему спрятать окно. А вообще, зачем делать консольное приложение если окно не нужно? Может проще сделать Win32 приложение без окна?
 
странно, но при всех вариантах что мне дали программа аварийно завершается...

//вариант1
char setpath[]="http://";
char* tmp=new char[800];
tmp[0]=0;

strcpy(tmp,setpath);
strcat(tmp,"www.google.com");


//вариант2
char* setpath;
char* setaddr;
char setpath2[300];

setpath="http://";
setaddr="www.google.com";
sprintf (setpath2,"%s%s",setpath,setaddr);

//вариант3
char setpath[300] = {0};
wsprintf(setpath, "http://%s", array[j]); // Строка будет вида http://+содержимое array[j]
 
Воспользуйся отладкой и определи, какая команда вызывает завершение работы. Приведенный тобой код вполне адекватен
 
Судя по названию переменных этот код используется в теле цикла. И предпологаю, что не все элементы массива array заполнены верными указателями, а все функции для работы со строками обычно это дело пытаются по мере сил отследить. Например они заругаются, если один из параметров равен 0х00000000.

Для прохода по всему массиву код должен быть примерно такой:
Код:
char setpath[300];

for(j=0; j<ARRAY_SIZE; j++)
{
[indent]setpath[0] = 0;[/indent]
[indent]if( !array([j] ) break;[/indent]

[indent]wsprintf(setpath, "http://%s", array[j]);[/indent]
[indent]//работаем c setpath[/indent]
}

Чёго-то не то получилось с форматированием :) , попробую еще раз:

Код:
char setpath[300];

for(j=0; j<ARRAY_SIZE; j++)
{
setpath[0] = 0;
if( !array[j] ) break;

wsprintf(setpath, "http://%s", array[j]);
//работаем c setpath
}

P.S. Если нулевой указатель может встречатся в масиве где угодно, а не только как завершающий элемент, то break надо заменить на continue.
 
вроде сделал, глючный какой-то этот vc++, вообще не понятно из-за чего вылетает программа, убрал просто один внешний цикл for(int i=0; i<1; i++) в котором ничего и не происходило и заработало
имя компьютера тоже определяется только со второго раза почему-то, при первом вызове всегда hui будет

Код:
char buffer5[256];		
DWORD size5;			
if (GetUserName(buffer5,&size5)!=0)		
{
puts(buffer5);
}
else
{
puts("hui");
}

как найти путь к папке с куками, такая штука не работает, т.к. не находит заголовочный файл shfolder.h, visual studio 5, windows xp

#include <shfolder.h>
TCHAR path[MAX_PATH_SIZE];
SHGetSpecialFolderPath(0, path, CSIDL_COOKIES, FALSE);


как использовать встроенный отладчик, если в ассемблерных кодах ничего не понятно?
 
можно ли сделать таймер в консольном приложении??
так не работает

Код:
int CALLBACK TimerProc(void)
{
MessageBox(NULL,"Timer","Timer",MB_OK);
puts("timer");
return 0;
}

int timerID=SetTimer(NULL,0,1000,&TimerProc);
while(1)
{
Sleep(10000);
break;
}
KillTimer(0,timerID);
 
Поставь студию посвежее, 2003 хотя бы
 
в 2005й студии shfolder.h есть но при компиляции выдает кучу ошибок именно в shfolder.h
 
Телепаты в отпуске и выражение "при компиляции выдает кучу ошибок" ничего не говорит
 
вижу.. вижу... что плохая карма у тебя внучек... хидер виндовс не подключеный довлеет над тобой =)
 
:D прошу помощи. подскажите как на Це++ билдере реализовать процедуру запуска EXE'шника если путь к этому файлу будет указан в TextBox'е ЗАРАНИЕ БЛАГОДАРЮ! ...
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!