Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Сложение строк, путь кук, консоль (https://forum.antichat.xyz/showthread.php?t=46320)

Satell 08.08.2007 13:17

Сложение строк, путь кук, консоль
 
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, как сделать его вообще чтобы никакого окна небыло?

Ni0x 08.08.2007 13:43

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 приложение, там порождай функциональный процесс... Вариантов куча...

Satell 08.08.2007 17:32

странно, но при всех вариантах что мне дали программа аварийно завершается...

//вариант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]

NetMan 08.08.2007 19:31

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, как сказал бы один талантливый кодер на букву "Г", не подумайте плохого, я про Грейта... :) Так вот он бы сказал "Трассировка!!!"... И был бы прав! Я уверен что прога у тебя вылетает в другом месте, потому что все из приведённых способов рабочие... Прогони в дебагере и ты чётко увидешь на каком месте он сыплется...

_Great_ 08.08.2007 21:49

Цитата:

Сообщение от groundhog
Satell, как сказал бы один талантливый кодер на букву "Г", не подумайте плохого, я про Грейта... :) Так вот он бы сказал "Трассировка!!!"... И был бы прав! Я уверен что прога у тебя вылетает в другом месте, потому что все из приведённых способов рабочие... Прогони в дебагере и ты чётко увидешь на каком месте он сыплется...

Ай, ой меня тут вспомнили.
Дада, именно так бы и сказал. Отладчик видно не для него придумали

Satell 08.08.2007 22:09

А как отладчик использовать, он то что в вижл студио там на ассемблере показывает, код отдельно работает, а в моей проге вылетает, причем что интересно инструкции после кода точно выполняются, происходит вывод, если их закомментить, то все работает
strcpy(tmp,setpath);
strcat(tmp,"www.google.com");

Ni0x 08.08.2007 22:17

а по русски написать можешь? видимо ты не умеешь работать с отладчиком.

GoreMaster 08.08.2007 22:22

ТС залей-ка скомпиленную прогу.
Для дебага ставь бряк на ExitProcess и дальше смотри откуда произошел вызов...


Время: 18:18