Просмотр полной версии : Сложение строк, путь кук, консоль
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) поиском пользуйся, 101 пример есть.
2) GetComputerName() - имя компьютера.
3) Если тебе не нужно окно, не легче сделать win32 приложение?
groundhog
08.08.2007, 13:46
1. Сделай проще:
char setpath[300] = {0};
wsprintf(setpath, "http://%s", array[j]); // Строка будет вида http://+содержимое array[j]
2. Тебе нужно не имя компьютера, а имя учётной записи, в чьи кукисы ты хочешь залезть. Для текущей учётной записи можно использовать:
BOOL GetUserName(
// address of name buffer
LPTSTR lpBuffer,
// address of size of name buffer
LPDWORD nSize
);
3. Создай win32 приложение со скрытым окном... создай 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]
Satell, всё пашет. Вот, например, проверь так:
#include <iostream.h>
#include <string.h>
int main()
{
char setpath[]="http://";
char* tmp=new char[800];
strcpy(tmp,setpath);
strcat(tmp,"www.google.com");
cout << "tmp=" << tmp;
delete tmp;
return 0;
}
groundhog
08.08.2007, 21:34
Satell, как сказал бы один талантливый кодер на букву "Г", не подумайте плохого, я про Грейта... :) Так вот он бы сказал "Трассировка!!!"... И был бы прав! Я уверен что прога у тебя вылетает в другом месте, потому что все из приведённых способов рабочие... Прогони в дебагере и ты чётко увидешь на каком месте он сыплется...
Satell, как сказал бы один талантливый кодер на букву "Г", не подумайте плохого, я про Грейта... :) Так вот он бы сказал "Трассировка!!!"... И был бы прав! Я уверен что прога у тебя вылетает в другом месте, потому что все из приведённых способов рабочие... Прогони в дебагере и ты чётко увидешь на каком месте он сыплется...
Ай, ой меня тут вспомнили.
Дада, именно так бы и сказал. Отладчик видно не для него придумали
А как отладчик использовать, он то что в вижл студио там на ассемблере показывает, код отдельно работает, а в моей проге вылетает, причем что интересно инструкции после кода точно выполняются, происходит вывод, если их закомментить, то все работает
strcpy(tmp,setpath);
strcat(tmp,"www.google.com");
а по русски написать можешь? видимо ты не умеешь работать с отладчиком.
GoreMaster
08.08.2007, 22:22
ТС залей-ка скомпиленную прогу.
Для дебага ставь бряк на ExitProcess и дальше смотри откуда произошел вызов...
groundhog
09.08.2007, 10:24
Исходники в студию, или это обсуждение будет до бесконечности...
вроде сделал, глючный какой-то этот 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);
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot