это и есть точный код, а описание ошибки такое какое выдаёт компилятор, скопировал полностью, компилятор висуал студио 2008
Djezul ты лучше начни с улучшения кода и ооп. то что ты щас пишешь, это по сути си стайл. если бы ты юзал ооп, вся программа уменьшилась бы раз так в 8. та даже если ты банально прекратишь копипастить код, сделаешь функции для покупки товаров, вывода инфы итп, ты уже сократишь код программы и упростишь возможности ее модификации. привыкай, что просто написать программу - мало. потом ее надо поддерживат, улучшать и исправлять.
Я её как раз и улучшаю, поэтому и перевожу всё в функции, а ооп я не использую , так как пишу на си, сначала, хочю его выучить, а учить лучше на практике__)) , тем более название раздела си/си++ , я думал и так понятно что это си. Кстати проблему я решил, просто названия функции и константы совпадали, вот и всё))
Достаточно взглянуть на использование потоковых классов что говорит о том что ты используешь с++. Советую перечитать книгу и понять отличия этих языков.
Возможно ты и прав, не буду спорить так как я пока мало что в этом понимаю, но в компьютерной школе , куда я стал недавно ходить, мы учим пока си а не си++ , и там нам препод сказал делать так.
А что еще надо? там описание прототипов всех ф-ций библиотеки или ты хочешь готовый код на тарелочке )
Подскажите на какой строке в этой ф-ции стек повреждается Code: char *listds() { HANDLE hh=GetProcessHeap(); char buff[1024],out[1024]; void *rbuf=HeapAlloc(hh,HEAP_ZERO_MEMORY,1024*4); void *rbuf1=HeapAlloc(hh,HEAP_ZERO_MEMORY,1024*4); void *rbuf2=HeapAlloc(hh,HEAP_ZERO_MEMORY,1024*4); void *rbuf3=HeapAlloc(hh,HEAP_ZERO_MEMORY,1024*4); char *buf=(char*)rbuf;char *buf1=(char*)rbuf1;char *buf2=(char*)rbuf2; char *buf3=(char*)rbuf3; struct { UINT type; LPCSTR name; } DTF [] = { { DRIVE_UNKNOWN, " (Unknown) " }, { DRIVE_NO_ROOT_DIR, " (Invalid path) " }, { DRIVE_REMOVABLE, " (Removable) " }, { DRIVE_FIXED, " (Logic Volume) " }, { DRIVE_REMOTE, " (Network drive) " }, { DRIVE_CDROM, " (CD-ROM) " }, { DRIVE_RAMDISK, " (RAM disk) " }, { 0, NULL}, }; GetLogicalDriveStrings(sizeof(buff)/sizeof(char),buff); DWORD FBA;DWORD TNOB;DWORD TNOFB; for(int i=0; i<1024-1; i++) if( buff[i]==0) { if(buff[i+1] != 0) buff[i] =(char) 0xD; else break; }strcpy(buf,buff); for(;;) { strncpy(buf1,buf,3);buf+=4; strcat(buf2,buf1);strcat(buf2,DTF[GetDriveType(buf1)].name); if(GetVolumeInformation(buf1,0,0,0,0,0,0,0)==true) { GetDiskFreeSpaceEx(buf1,(PULARGE_INTEGER)&FBA,(PULARGE_INTEGER)&TNOB,(PULARGE_INTEGER)&TNOFB); sprintf(buf3,"%d",TNOFB/(1024));strcat(buf2,"avalaible kbytes:"); strcat(buf2,buf3);strcat(buf2,"\n"); memset(buf3,NULL,1024); } if(GetVolumeInformation(buf1,0,0,0,0,0,0,0)!=true) { strcat(buf2,"<No Disk>\n"); } if(strlen(buf)==0){break;} } strcpy(out,buf2); HeapFree(hh,0,rbuf); HeapFree(hh,0,rbuf1); HeapFree(hh,0,rbuf2); HeapFree(hh,0,rbuf3); return(out); }
Всем привет. У меня такой вопрос. Поставил себе Visual Studio 2008 Team System создаю пустой НЕ CLR проект подключаю прототипы фунций Winsock2 и он выдает целую кучу ошибок. Это я что-то не так делаю или у всех так? Выглядит это так: #include <windows.h> #include <winsock2.h> int main() { WSAData wsaData; int ret = WSAStartup(MAKEWORD(1,1), &wsaData); if(ret == SOCKET_ERROR) ExitProcess(0); SOCKET s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(s==0) ExitProcess(0); ......................... Sleep(3000); return 0; } Причем ошибки как я понял в заголовочном файле.....приводить их не буду их 68 шт. Вопрос №2 Как убрать консольное окошечко которое выскакивает при каждом запуске приложения........ Заранее спасибо за ответы.
есть две переменные char *first="Text"; char second[255]; как присвоить переменной second значение переменной first? компилятор ругается на "invalid conversion from `char*' to `char'"
to mr.The Первая переменная есть указатель на область памяти в 1 байт, выделенная под переменную типа char. Делая так char *first = "Text" - ты успешно записываешь в место адреса "Te"(2 байта) Вторая переменная - массив из 255 элементов. Я думаю правильно так char first[5]= "Text"; char second[255]; for(int i=0; i<5; i++) { second=first; cout << second; }